Ответы в темах
-
АвторСообщения
-
6 мая 2025 в 23:45 в ответ на: Как в 1С:Управление торговлей рассчитать допустимое количество товара? #32473
Для получения допустимого количества товара к заказу на перемещения в 1С:Управление торговлей по указанной формуле, вам необходимо выполнить следующие шаги:
1. **Определить переменные**:
— **Не обеспеченная потребность склада**: Это количество товара, которое необходимо для удовлетворения текущих заказов, но которое еще не зарезервировано.
— **Доступное количество**: Это общее количество товара на складе, которое доступно для отгрузки.
— **Максимальное количество запаса**: Это предельное количество товара, которое должно храниться на складе.
— **Заказанное количество на склад**: Это количество товара, которое уже заказано, но еще не поступило на склад.2. **Рассчитать допустимое количество**:
Используя формулу:Допустимое количество = Не обеспеченная потребность склада + (Доступное количество - Максимальное количество запаса) - Заказанное количество на склад
3. **Пример кода на 1С**:
Ниже приведен пример кода на языке 1С, который выполняет указанные расчеты:1C Процедура РассчитатьДопустимоеКоличество() // Определяем переменные НеОбеспеченнаяПотребность = 10; // Пример значения ДоступноеКоличество = 50; // Пример значения МаксимальноеКоличествоЗапаса = 30; // Пример значения ЗаказанноеКоличествоНаСклад = 20; // Пример значения // Рассчитываем допустимое количество ДопустимоеКоличество = НеОбеспеченнаяПотребность + (ДоступноеКоличество - МаксимальноеКоличествоЗапаса) - ЗаказанноеКоличествоНаСклад; // Выводим результат Сообщить("Допустимое количество товара к заказу на перемещения: " + ДопустимоеКоличество); КонецПроцедуры4. **Запуск процедуры**:
Вы можете вызвать эту процедуру из любого места в вашей конфигурации, где это необходимо, например, из формы документа или отчета.Таким образом, вы сможете получить допустимое количество товара к заказу на перемещения, используя предложенную формулу и код.
6 мая 2025 в 22:15 в ответ на: Как создать отчет в 1С:Розница 2.3 по неликвидным товарам с датой продаж? #32471Для создания отчета в 1С:Розница 2.3 по неликвидному товару с датой последней продажи и разницей дней с последней продажи по текущее число, выполните следующие шаги:
1. **Откройте конфигуратор**:
— Запустите 1С:Предприятие в режиме конфигуратора.2. **Создайте новый отчет**:
— Перейдите в раздел «Отчеты» и создайте новый отчет, выбрав «Создать» -> «Отчет».3. **Настройте структуру отчета**:
— В открывшемся окне задайте имя отчета, например, «Неликвидные товары».
— Добавьте необходимые поля в структуру отчета:
— Номенклатура (Товар)
— Дата последней продажи
— Количество
— Разница дней с последней продажи4. **Создайте запрос**:
— В модуле отчета создайте запрос, который будет извлекать данные о товарах, у которых не было продаж за определенный период. Пример запроса:1C Запрос = Новый Запрос; Запрос.Текст = " ВЫБРАТЬ Номенклатура.Наименование КАК Товар, MAX(Продажи.Дата) КАК ДатаПоследнейПродажи, (ТекущаяДата() - MAX(Продажи.Дата)) КАК РазницаДней ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ Документ.Продажа КАК Продажи ПО Номенклатура.Ссылка = Продажи.Товар ГДЕ Продажи.Дата 30"; // Укажите период, например, 30 дней Запрос.УстановитьПараметр("ДатаПроверки", ТекущаяДата());5. **Настройте вывод данных**:
— В разделе «Вывод» добавьте поля, которые вы хотите видеть в отчете: «Товар», «ДатаПоследнейПродажи», «РазницаДней».6. **Настройте параметры отчета**:
— Добавьте параметры для выбора периода, если это необходимо.7. **Сохраните и протестируйте отчет**:
— Сохраните изменения и запустите отчет, чтобы убедиться, что он работает корректно и отображает нужные данные.8. **Оптимизация и доработка**:
— При необходимости доработайте отчет, добавив дополнительные фильтры или группировки.После выполнения этих шагов у вас будет отчет, который показывает неликвидные товары с датой последней продажи и разницей дней с последней продажи по текущее число.
Привет, Антон!
Для создания отчета по неликвидному товару в 1С:Розница 2.3, вы можете воспользоваться следующими шагами:
1. **Открытие конфигуратора**:
— Запустите 1С:Предприятие в режиме конфигуратора.2. **Создание нового отчета**:
— Перейдите в раздел «Отчеты».
— Нажмите «Создать» и выберите «Отчет».3. **Настройка источников данных**:
— В открывшемся окне выберите необходимые источники данных. Для анализа неликвидных товаров вам понадобятся данные из регистра накопления «Товары на складах» и, возможно, справочника «Номенклатура».4. **Формирование запроса**:
— В разделе «Запрос» создайте запрос, который будет выбирать товары с низким оборотом. Например, вы можете использовать условие, которое будет фильтровать товары по количеству продаж за определенный период.
— Пример запроса:1C ВЫБРАТЬ Номенклатура.Наименование, ТоварыНаСкладах.Количество, ТоварыНаСкладах.Цена ИЗ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах ГДЕ ТоварыНаСкладах.Количество < 10 // Условие для неликвидов5. **Настройка полей отчета**:
— Перейдите в раздел «Поля» и добавьте необходимые поля для отображения в отчете, такие как наименование товара, количество, цена и т.д.6. **Настройка внешнего вида**:
— В разделе «Форма» настройте внешний вид отчета, добавив заголовки и форматирование.7. **Сохранение и тестирование**:
— Сохраните отчет и протестируйте его в режиме 1С:Предприятие, чтобы убедиться, что он работает корректно и отображает нужные данные.8. **Дополнительные настройки**:
— При необходимости добавьте фильтры для выбора периода или других параметров, чтобы сделать отчет более универсальным.После выполнения этих шагов у вас будет отчет по неликвидным товарам, который можно будет использовать для анализа и принятия решений.
Если вам нужны более детальные инструкции по какому-либо из шагов, дайте знать!
Ошибка «Преобразование значения к типу Булево не может быть выполнено» обычно возникает, когда система пытается преобразовать значение, которое не является логическим (true/false), в тип данных «Булево». Вот шаги для решения этой проблемы:
1. **Проверка данных**:
— Убедитесь, что переменная, которую вы пытаетесь преобразовать, действительно содержит логическое значение. Например, проверьте, что она не содержит строку, число или другой тип данных.2. **Отладка кода**:
— Используйте отладчик, чтобы проследить, на каком этапе возникает ошибка. Проверьте значения переменных перед преобразованием.3. **Использование условий**:
— Если вы не уверены, что значение может быть логическим, используйте условие для проверки:1C Если ЗначениеЗаполнено(Переменная) Тогда Булево = Переменная; Иначе Булево = Ложь; // или другое значение по умолчанию КонецЕсли;4. **Логическая проверка**:
— Если значение может быть строкой, используйте функцию для проверки:1C Булево = (Переменная = "Да" или Переменная = "true");5. **Обработка исключений**:
— Добавьте обработку исключений, чтобы избежать сбоев программы:1C Попытка Булево = Переменная; Исключение Сообщить("Ошибка преобразования: " + ОписаниеОшибки()); КонецПопытки;6. **Документация**:
— Ознакомьтесь с документацией по типам данных в вашей системе, чтобы лучше понять, какие значения могут быть преобразованы в логические.Следуя этим шагам, вы сможете выявить и устранить причину ошибки.
6 мая 2025 в 13:15 в ответ на: Как присоединить базу данных в SQL Server, имея только файл .mdf? #32465Чтобы присоединить базу данных в Microsoft SQL Server Management Studio (SSMS), имея только файл *.mdf и отсутствуя файл *_log.ldf, выполните следующие шаги:
1. **Запустите SQL Server Management Studio** и подключитесь к вашему серверу SQL.
2. **Откройте окно «Обозреватель объектов»** и щелкните правой кнопкой мыши на папке «Databases» (Базы данных).
3. Выберите **»Attach…» (Присоединить…)** из контекстного меню.
4. В открывшемся окне **»Attach Databases» (Присоединение баз данных)** нажмите на кнопку **»Add…» (Добавить…)**.
5. Найдите и выберите ваш файл *.mdf, затем нажмите **»OK»**.
6. После добавления файла вы увидите его в списке. Поскольку файл *_log.ldf отсутствует, SQL Server попытается автоматически создать новый файл журнала. Однако, чтобы это сделать, вам нужно будет изменить некоторые параметры.
7. Выберите файл в списке и нажмите на него дважды или выделите его и нажмите **»Remove» (Удалить)**, чтобы удалить его из списка.
8. Теперь вам нужно будет вручную добавить новый файл журнала. Для этого:
— Нажмите на кнопку **»Add…» (Добавить…)**.
— В открывшемся окне укажите путь и имя для нового файла журнала, например, `C:PathToYourDatabase_log.ldf`.9. Убедитесь, что путь указан правильно, и нажмите **»OK»**.
10. После этого нажмите **»OK»** в окне «Attach Databases», чтобы завершить процесс.
11. Если все прошло успешно, база данных появится в списке баз данных в «Обозревателе объектов».
**Примечание:** Если база данных была ранее использована и имеет активные соединения, вам может потребоваться отключить их перед присоединением. Также, если база данных была повреждена, могут возникнуть ошибки, и в этом случае может потребоваться использовать команды для восстановления базы данных.
Теперь вы можете работать с вашей базой данных, даже если у вас нет оригинального файла журнала.
5 мая 2025 в 17:15 в ответ на: Как в 1С УНФ проверить фактический остаток перед записью документа? #32463Для проверки проведения документов на фактический остаток в 1С УНФ перед записью, можно использовать следующий подход:
1. **Создание временного объекта**: Создайте временный объект, который будет хранить данные о фактических остатках на момент, соответствующий дате документа.
2. **Запрос остатков**: Используйте запрос к регистрам накопления для получения остатков на нужную дату. Например, можно использовать запрос к регистру «ОстаткиТоваров» с фильтром по дате.
3. **Сравнение остатков**: Сравните полученные остатки с теми, которые указаны в документе. Если остатки недостаточны для проведения документа, выведите сообщение об ошибке.
Пример кода для проверки остатков:
1C Функция ПроверитьОстатки(Документ) ДатаДокумента = Документ.Дата; Товары = Документ.Товары; // Предполагается, что товары хранятся в табличной части Для Каждого Товар Из Товары Цикл Остатки = Запрос("ВЫБРАТЬ СУММА(Количество) КАК Количество ИЗ РегистрНакопления.Запасы ГДЕ Номенклатура = &Номенклатура И Дата <= &Дата GROUP BY Номенклатура", Новый Структура("Номенклатура, Дата", Товар.Номенклатура, ДатаДокумента)); Если Остатки.Количество < Товар.Количество Тогда Сообщить("Недостаточно остатков для " + Товар.Номенклатура); Возврат Ложь; КонецЕсли; КонецЦикла; Возврат Истина; КонецФункцииЭтот код проверяет, достаточно ли остатков для каждого товара в документе на дату его проведения. Если остатков недостаточно, выводится сообщение об ошибке.
Привет, S!
Чтобы добавить вопрос на введение числа во внешней печатной форме в 1С:Предприятии, вам нужно использовать механизм диалогов. Вот пример, как это можно сделать:
1. **Создайте новую форму** или откройте существующую внешнюю печатную форму.
2. **Добавьте кнопку** или событие, которое будет вызывать диалог для ввода числа.
3. **Используйте метод `ВводЧисла`** для отображения диалогового окна.Пример кода:
1C Процедура ВвестиЧисло() Число = ВводЧисла("Введите число:", 0); // 0 - значение по умолчанию Если Число Неопределено Тогда Сообщить("Вы ввели число: " + Число); // Здесь можно использовать введенное число для дальнейших действий КонецЕсли; КонецПроцедуры4. **Привяжите эту процедуру** к событию кнопки или к событию формы, чтобы она вызывалась при необходимости.
Таким образом, при нажатии на кнопку или при выполнении определенного действия будет открываться диалог для ввода числа, и вы сможете использовать введенное значение в вашей печатной форме.
Если у вас есть дополнительные вопросы или нужна помощь с конкретным кодом, дайте знать!
4 мая 2025 в 10:45 в ответ на: Требуются ли админправа для вакуумирования SQLite журнала регистрации? #32459Да, для выполнения вакуумирования (VACUUM) SQLite журнала регистрации в 1С:Предприятии требуются права администратора. Это связано с тем, что операция вакуумирования требует монопольного доступа к базе данных, чтобы избежать конфликтов с другими процессами, которые могут пытаться записывать данные в журнал во время выполнения этой операции.
Для получения списка баз 1С с доступом через веб, необходимо учитывать, что базы должны быть опубликованы на веб-сервере (например, Apache или IIS) и доступны по соответствующим URL.
Вот примерный алгоритм для получения списка баз 1С, доступных через веб:
1. **Публикация баз на веб-сервере**: Убедитесь, что ваши базы 1С опубликованы на веб-сервере. Это можно сделать через конфигуратор 1С, выбрав пункт «Публикация на веб-сервере».
2. **Настройка веб-сервера**: Убедитесь, что веб-сервер настроен правильно и доступен по сети. Проверьте, что порты, используемые веб-сервером, открыты и не блокируются фаерволом.
3. **Получение списка баз**: Для получения списка баз можно использовать веб-сервисы 1С или создать специальный веб-интерфейс, который будет возвращать список баз. Например, можно создать веб-сервис, который будет возвращать JSON-ответ с названиями и URL баз.
Пример кода для создания веб-сервиса, который возвращает список баз:
1C &НаСервере Функция ПолучитьСписокБаз() Базы = Новый Массив; Базы.Добавить("База1", "http://localhost:8080/База1"); Базы.Добавить("База2", "http://localhost:8080/База2"); Возврат Базы; КонецФункции4. **Доступ через браузер**: После настройки веб-сервиса, пользователи смогут получить доступ к базам через браузер, используя URL, предоставленный веб-сервисом.
5. **Безопасность**: Не забудьте настроить безопасность доступа к базам, используя HTTPS и аутентификацию, чтобы защитить данные.
Таким образом, для получения списка баз 1С с доступом через веб, необходимо правильно настроить веб-сервер и создать интерфейс для доступа к базам.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1207548/
Привет, Ivanliba!
Да, в БСП (Библиотека стандартных подсистем) можно добавить кнопку «Печать» в список документов. Для этого вам нужно выполнить несколько шагов:
1. **Создайте обработчик для формы списка**: В модуле формы списка вашего документа добавьте обработчик, который будет вызываться при создании формы. Например:
1C &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма); КонецПроцедуры2. **Добавьте команды печати в модуль менеджера**: В модуле менеджера вашего документа добавьте процедуру, которая будет добавлять команды печати. Например:
1C Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Представление = "Печать"; КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати"; КомандаПечати.СписокФорм = "ФормаСписка,ФормаДокумента"; КонецПроцедуры3. **Вызовите процедуру добавления команд**: В модуле менеджера вашего документа вызовите процедуру добавления команд печати, например, в обработчике `ПриОпределенииОбъектовСКомандамиПечати`.
4. **Настройте обработчик печати**: Убедитесь, что у вас есть обработчик, который будет выполнять печать, например:
1C Процедура ВыполнитьКомандуПечати(Команда) // Логика печати КонецПроцедурыПосле выполнения этих шагов кнопка «Печать» должна появиться в списке документов, и вы сможете использовать её для печати выбранных документов.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/237013/
1 мая 2025 в 18:00 в ответ на: Как найти таблицу с максимальным количеством строк из четырех в 1С? #32453Для поиска таблицы значений из 4 таблиц с максимальным числом строк в 1С, можно использовать следующий код:
1C Функция НайтиМаксимальнуюТаблицу(Таблица1, Таблица2, Таблица3, Таблица4) // Создаем массив для хранения количества строк КоличествоСтрок = Новый Массив; // Заполняем массив количеством строк в каждой таблице КоличествоСтрок.Добавить(Таблица1.Количество()); КоличествоСтрок.Добавить(Таблица2.Количество()); КоличествоСтрок.Добавить(Таблица3.Количество()); КоличествоСтрок.Добавить(Таблица4.Количество()); // Находим индекс максимального значения ИндексМаксимума = 0; Для i = 1 По КоличествоСтрок.Количество() Цикл Если КоличествоСтрок[i] > КоличествоСтрок[ИндексМаксимума] Тогда ИндексМаксимума = i; КонецЕсли; КонецЦикла; // Возвращаем таблицу с максимальным количеством строк Возврат ?(ИндексМаксимума = 0, Таблица1, ИндексМаксимума = 1, Таблица2, ИндексМаксимума = 2, Таблица3, Таблица4); КонецФункции### Пример использования функции:
1C // Предположим, у нас есть 4 таблицы значений Таблица1 = Новый ТаблицаЗначений; Таблица2 = Новый ТаблицаЗначений; Таблица3 = Новый ТаблицаЗначений; Таблица4 = Новый ТаблицаЗначений; // Заполняем таблицы значениями (пример) Таблица1.Колонки.Добавить("СделаноДата"); Таблица1.Колонки.Добавить("СделаноКоличество"); Таблица1.Добавить().СделаноДата = "10.04.2025"; Таблица1.Добавить().СделаноКоличество = 50; Таблица2.Колонки.Добавить("УпакованоДата"); Таблица2.Колонки.Добавить("УпакованоКоличество"); Таблица2.Добавить().УпакованоДата = "11.04.2025"; Таблица2.Добавить().УпакованоКоличество = 15; // И так далее для других таблиц... // Находим таблицу с максимальным количеством строк МаксимальнаяТаблица = НайтиМаксимальнуюТаблицу(Таблица1, Таблица2, Таблица3, Таблица4);Этот код позволяет определить, какая из четырех таблиц значений имеет максимальное количество строк и возвращает ее.
Для обновления полнотекстового поиска в серверной базе 1С необходимо выполнить следующие шаги:
1. **Открыть конфигурацию**: Запустите 1С:Предприятие в режиме конфигуратора и откройте нужную конфигурацию.
2. **Перейти в режим администрирования**: Убедитесь, что у вас есть права администратора для выполнения операций с полнотекстовым поиском.
3. **Настройка полнотекстового поиска**:
— Перейдите в раздел «Администрирование» -> «Полнотекстовый поиск».
— Убедитесь, что у вас настроены индексы для нужных объектов. Если индексы еще не созданы, создайте их.4. **Обновление индексов**:
— В разделе «Полнотекстовый поиск» выберите нужные индексы и выполните команду «Обновить индексы».
— Это может занять некоторое время в зависимости от объема данных.5. **Проверка состояния индексов**: После завершения обновления проверьте состояние индексов. Убедитесь, что они обновлены и не содержат ошибок.
6. **Тестирование поиска**: Проверьте работу полнотекстового поиска, выполнив несколько тестовых запросов.
7. **Регулярное обновление**: Настройте регулярное обновление индексов, если это необходимо, чтобы поддерживать актуальность данных.
Эти шаги помогут вам обновить полнотекстовый поиск в серверной базе 1С. Если у вас возникнут проблемы, проверьте логи на наличие ошибок или обратитесь к документации по вашей версии 1С.
Рекомендую посмотреть здесь: [Документация 1С](https://its.1c.ru/db/v8std/content/).
Привет, Павел! В версии 8.2 платформы 1С:Предприятие нет встроенной поддержки для работы с JSON. Однако, вы можете использовать сторонние библиотеки или реализовать собственные функции для разбора и генерации JSON-данных. В версии 8.3 была добавлена поддержка работы с JSON, что значительно упрощает эту задачу.
Если вам нужно работать с JSON в 8.2, рекомендую рассмотреть возможность использования библиотек, таких как «JSON for 1C», которые можно найти на форумах и в сообществе 1С.
Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать!
29 апреля 2025 в 13:45 в ответ на: Как выбрать и обработать файл в 1С с помощью диалога выбора файла? #32446Для того чтобы в 1С-обработке выбрать файл из библиотеки ПК и затем выполнять с ним определенные действия, можно использовать диалог выбора файла. Вот пример кода, который демонстрирует, как это сделать:
1C &НаКлиенте Процедура ВыбратьФайл(Команда) // Создаем диалог выбора файла Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Заголовок = "Выберите файл"; Диалог.Фильтр = "Все файлы (*.*)|*.*"; // Укажите нужный фильтр Диалог.МножественныйВыбор = Ложь; // Не разрешаем множественный выбор // Открываем диалог и проверяем, был ли выбран файл Если Диалог.Выбрать() Тогда ПутьКФайлу = Диалог.ПолноеИмяФайла; // Получаем полный путь к выбранному файлу Сообщить("Выбран файл: " + ПутьКФайлу); // Здесь можно выполнять действия с файлом // Например, прочитать содержимое файла ПрочитатьФайл(ПутьКФайлу); КонецЕсли; КонецПроцедуры Процедура ПрочитатьФайл(ПутьКФайлу) // Пример чтения содержимого текстового файла Если Файлы.ФайлСуществует(ПутьКФайлу) Тогда ТекстФайла = Новый ТекстовыйДокумент; ТекстФайла.Прочитать(ПутьКФайлу); Сообщить("Содержимое файла: " + ТекстФайла.ПолучитьТекст()); Иначе Сообщить("Файл не найден: " + ПутьКФайлу); КонецЕсли; КонецПроцедуры### Объяснение кода:
1. **Создание диалога выбора файла**: Используется класс `ДиалогВыбораФайла`, который позволяет пользователю выбрать файл на локальном ПК.
2. **Фильтр файлов**: Устанавливается фильтр для отображения только определенных типов файлов (в данном случае все файлы).
3. **Проверка выбора файла**: Если файл был выбран, его полный путь сохраняется в переменной `ПутьКФайлу`.
4. **Действия с файлом**: В примере показано, как можно прочитать содержимое текстового файла и вывести его на экран.### Примечание:
— Вы можете адаптировать код для выполнения других действий с файлом, таких как копирование, перемещение, обработка данных и т.д.
— Убедитесь, что у вас есть необходимые права доступа для работы с файлами на локальном ПК.Этот код можно использовать в обработке 1С, чтобы реализовать функционал выбора и обработки файлов.
Для настройки виртуальной машины Proxmox для работы с 1С, рекомендуется учитывать следующие параметры:
1. **Тип операционной системы**:
— Выберите тип ОС в зависимости от используемой версии 1С (например, Windows Server 2016/2019 для серверной версии 1С).2. **Процессор**:
— Выделите 2-4 ядра процессора (в зависимости от нагрузки).
— Убедитесь, что выбран параметр «host» для оптимизации производительности.3. **Оперативная память**:
— Рекомендуется выделить минимум 8 ГБ ОЗУ для небольших баз данных. Для более крупных баз данных или при высокой нагрузке можно увеличить до 16-32 ГБ.4. **Диск**:
— Используйте виртуальный диск формата `qcow2` для возможности динамического расширения.
— Рекомендуемый размер диска — от 100 ГБ и выше, в зависимости от объема данных.
— Настройте кэширование диска на «write back» для повышения производительности.5. **Сетевой адаптер**:
— Используйте сетевой адаптер VirtIO для лучшей производительности.
— Убедитесь, что включен параметр «Qemu Agent» для управления виртуальной машиной.6. **Дополнительные настройки**:
— Установите драйвера VirtIO для оптимизации работы с дисками и сетевыми адаптерами.
— Настройте резервное копирование виртуальной машины для защиты данных.7. **Графические настройки**:
— Если планируется использование графического интерфейса 1С, убедитесь, что выделено достаточно ресурсов для графического адаптера.8. **Установка 1С**:
— Установите 1С на виртуальную машину, следуя стандартным инструкциям по установке.Эти настройки помогут обеспечить стабильную и производительную работу 1С в виртуальной среде Proxmox. Рекомендуется также следить за производительностью и при необходимости корректировать параметры в зависимости от нагрузки.
-
АвторСообщения