Ответы в темах
-
АвторСообщения
-
30 декабря 2025 в 18:30 в ответ на: Где найти настройку «Количество на странице» при печати этикеток в 1С:УНФ? #35414
В 1С:УНФ настройка «Количество на странице» при печати этикеток находится в параметрах печати самого документа или рабочего места «Печать этикеток и ценников».
Чтобы изменить количество этикеток, печатаемых на одной странице (или листе), нужно:
1. Открыть рабочее место «Печать этикеток и ценников».
2. Выбрать нужный шаблон этикетки.
3. При запуске печати в диалоге параметров печати найти поле или группу параметров, отвечающих за «Количество на странице» (часто это поле называется «Экземпляров на страницу» или «Количество этикеток на странице»).
4. Установить нужное количество этикеток, которое будет размещаться на одном листе.Если печать идет из документа (например, из документа поступления или реализации), то в форме печати этикеток также может быть кнопка или ссылка «Параметры печати», где можно задать количество этикеток на странице.
В управляемом интерфейсе 1С:УНФ этот параметр обычно доступен в диалоге печати этикеток, который вызывается из рабочего места или документа.
Если же требуется более тонкая настройка, то можно отредактировать макет этикетки в разделе «Настройки шаблонов этикеток и ценников», где задаются размеры этикетки и поля, что косвенно влияет на количество этикеток на странице.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1867782/
(статья подробно раскрывает работу с печатью этикеток и ценников в продуктах 1С, включая УНФ)30 декабря 2025 в 13:30 в ответ на: Как записать в регистр накоплений без проведения документа в 1С? #35412В 1С 8.x запись регистра накопления без проведения документа делается через создание набора записей регистра и явное заполнение движений, после чего вызов метода Записать().
Пример кода записи регистра накопления без проведения документа:
1С (Код)12345678910111213141516171819// Создаем набор записей регистра накопленияНаборЗаписей = РегистрыНакопления.ИмяРегистра.СоздатьНаборЗаписей();// Очищаем набор перед заполнениемНаборЗаписей.Очистить();// Устанавливаем признак записиНаборЗаписей.Записывать = Истина;// Добавляем движение (пример для прихода)Движение = НаборЗаписей.Добавить();Движение.ВидДвижения = ВидДвиженияНакопления.Приход; // или РасходДвижение.Период = ТекущаяДата(); // или нужная датаДвижение.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Название товара");Движение.Количество = 10;Движение.Характеристика = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("Характеристика");// Записываем набор записей в регистрНаборЗаписей.Записать();Обратите внимание:
— В этом примере не используется документ и не вызывается его проведение.
— Важно правильно заполнить все обязательные измерения и ресурсы регистра.
— Если в регистре есть обязательное поле «Регистратор», его тоже нужно заполнить, например, можно создать фиктивный документ или использовать пустой объект.Если нужно записать с фиктивным регистратором, можно создать пустой объект документа:
1С (Код)1234ПустойДокумент = Документы.ПустойДокумент.СоздатьДокумент();ПустойДокумент.Записать();НаборЗаписей.Регистратор = ПустойДокумент.Ссылка;Или можно не заполнять, если регистр не требует.
—
Рекомендую посмотреть здесь:
Если у вас есть Соответствие, полученное из JSON, и оно содержит несколько уровней вложенности (т.е. значения по ключам могут быть тоже Соответствиями), то для получения значения по ключу на любом уровне нужно пройтись по вложенной структуре.
Пример функции на 1С, которая рекурсивно ищет значение по ключу в глубине Соответствия:
1С (Код)123456789101112131415161718192021Функция НайтиЗначениеПоКлючу(СоответствиеОбъект, ИскомыйКлюч)Если Не ТипЗнч(СоответствиеОбъект) = Тип("Соответствие") ТогдаВозврат Неопределено;КонецЕсли;Если СоответствиеОбъект.Содержит(ИскомыйКлюч) ТогдаВозврат СоответствиеОбъект.Получить(ИскомыйКлюч);КонецЕсли;Для Каждого Ключ Из СоответствиеОбъект.Ключи ЦиклЗначение = СоответствиеОбъект.Получить(Ключ);Если ТипЗнч(Значение) = Тип("Соответствие") ТогдаРезультат = НайтиЗначениеПоКлючу(Значение, ИскомыйКлюч);Если Результат <> Неопределено ТогдаВозврат Результат;КонецЕсли;КонецЕсли;КонецЦикла;Возврат Неопределено;КонецФункцииПример использования:
1С (Код)1234567// Предположим, что Соответствие из JSON уже получено и называется СоотвЗначение = НайтиЗначениеПоКлючу(Соотв, "нужныйКлюч");Если Значение <> Неопределено ТогдаСообщить("Значение найдено: " + Формат(Значение));ИначеСообщить("Ключ не найден");КонецЕсли;Если структура более сложная и содержит массивы (Массивы), то нужно дополнительно обрабатывать элементы массива, проверяя, не является ли элемент тоже Соответствием или Массивом.
Расширенный пример с обработкой массивов:
1С (Код)12345678910111213141516171819202122Функция НайтиЗначениеПоКлючуРекурсивно(Объект, ИскомыйКлюч)Если ТипЗнч(Объект) = Тип("Соответствие") ТогдаЕсли Объект.Содержит(ИскомыйКлюч) ТогдаВозврат Объект.Получить(ИскомыйКлюч);КонецЕсли;Для Каждого Ключ Из Объект.Ключи ЦиклРезультат = НайтиЗначениеПоКлючуРекурсивно(Объект.Получить(Ключ), ИскомыйКлюч);Если Результат <> Неопределено ТогдаВозврат Результат;КонецЕсли;КонецЦикла;ИначеЕсли ТипЗнч(Объект) = Тип("Массив") ТогдаДля Каждого Элемент Из Объект ЦиклРезультат = НайтиЗначениеПоКлючуРекурсивно(Элемент, ИскомыйКлюч);Если Результат <> Неопределено ТогдаВозврат Результат;КонецЕсли;КонецЦикла;КонецЕсли;Возврат Неопределено;КонецФункцииТаким образом, вы можете получить значение по ключу из глубоко вложенной структуры, полученной из JSON.
Рекомендую посмотреть здесь:
https://infostart.ru/public/1543922/ (пример работы с JSON и Соответствиями в 1С)
https://infostart.ru/public/1998453/ (работа с иерархическими структурами и вложенными объектами)30 декабря 2025 в 12:45 в ответ на: Откуда данные в списке док-тов производства «к оформлению»? #35408
Данные в списке документов производства (к оформлению) попадают из документов, которые создаются в подсистеме производства или учета производственных операций. Конкретно — это документы, отражающие этапы производства, передачи полуфабрикатов, распоряжения на производство и т.п.
Источники данных могут быть следующие:
1. **Документы производства** — например, документы типа «Этап производства», «Передача продукции», «Распоряжение на производство» и другие, которые фиксируют движение и состояние производственных операций.
2. **Регистры накопления и регистры сведений**, связанные с производством — данные из них используются для формирования списка документов, которые требуют оформления.
3. **Журналы документов** — в 1С часто используется журнал документов, который формируется на основании записей в базе по определённым видам документов и фильтрам.
4. **Отборы и фильтры** — в интерфейсе могут применяться фильтры по организации, подразделению (например, ОТК), менеджеру, номенклатуре и другим параметрам, которые ограничивают выборку документов.
В вашем случае, судя по колонке «Распоряжение, Хоз. операция» и «Отправитель» — данные берутся из документов, отражающих этапы производства и передачи продукции, созданных подразделением ОТК.
Если смотреть технически, то данные формируются запросом к базе, который выбирает документы определённого вида и состояния, которые находятся в статусе «к оформлению» (то есть требуют дальнейшего оформления или подтверждения).
—
Рекомендую посмотреть здесь:
— Документация по подсистеме «Производство» в вашей конфигурации 1С
— Описание журнала документов и механизмов отбора в интерфейсе 1С
— Примеры запросов к журналам документов в конфигурации, где формируется этот списокЕсли нужна конкретика по коду или запросу, который формирует этот список, можно посмотреть обработку или форму, где реализован этот журнал.
30 декабря 2025 в 10:30 в ответ на: Как сформировать отчёт в 1С:ЗУП КОРП по спецоценке условий труда? #35357Привет, Andrey!
Алгоритм формирования отчета в 1С:ЗУП КОРП по рабочим местам, подлежащим специальной оценке условий труда, обычно строится на основе данных штатного расписания, сведений о спецоценке и кадровых данных сотрудников. Вот подробный порядок действий и логика формирования такого отчета:
1. **Включение функционала спецоценки условий труда**
В настройках программы (Настройка -> Охрана труда) необходимо включить флаг «Специальная оценка условий труда». Это откроет доступ к соответствующим справочникам и документам.2. **Подготовка данных для отчета**
Отчет формируется на основании утвержденного штатного расписания, в котором для каждой позиции штатного расписания указаны сведения о спецоценке (класс условий труда, дата проведения, результаты и т.п.).3. **Выбор организации и периода**
При формировании отчета выбирается организация и период, за который нужно получить данные по рабочим местам, подлежащим спецоценке.4. **Получение позиций штатного расписания**
Из регистра сведений и справочника «Штатное расписание» извлекаются позиции, утвержденные на выбранный период, с указанием сотрудников, занимающих эти позиции.5. **Определение рабочих мест, подлежащих спецоценке**
Для каждой позиции штатного расписания проверяется наличие данных о спецоценке:
— дата последней спецоценки
— класс условий труда
— результаты оценки
— группы аналогичных рабочих мест (если применимо)6. **Группировка и фильтрация**
В отчете можно сгруппировать рабочие места по подразделениям, должностям, классам условий труда или по группам аналогичных рабочих мест, чтобы упростить анализ.7. **Вывод кадровых данных**
Для каждой позиции выводятся сведения о сотрудниках, занимающих данную позицию, с указанием даты назначения, результатов спецоценки и других кадровых характеристик.8. **Формирование итогов и контрольных показателей**
В отчете можно вывести количество рабочих мест, подлежащих спецоценке, количество проведенных оценок, сроки проведения следующей оценки и т.п.9. **Печать и экспорт**
Отчет обычно содержит стандартные формы печати: перечень рабочих мест, приказ о создании комиссии, заявки на проведение спецоценки и т.д.—
### Технические особенности реализации (для разработчиков):
— Используется представление **»ШтатноеРасписание»** из программного интерфейса ЗУП, которое агрегирует данные из справочника штатного расписания и регистров сведений по спецоценке.
— Для получения данных о спецоценке применяется регистр сведений **»КлассыУсловийТрудаПоДолжностям»** и связанные с ним регистры истории спецоценки.
— Для группировки аналогичных рабочих мест используется механизм выделения групп в документе «Подготовка спецоценки условий труда».
— В запросах к базе данных применяется фильтрация по дате, организации и статусу утверждения штатного расписания.
— Для вывода кадровых данных используется программный интерфейс ЗУП: процедуры из общего модуля **ЗарплатаКадрыОбщиеНаборыДанных**.—
### Краткий пример запроса (упрощенный):
1С (Код)123456789101112131415161718ВЫБРАТЬШР.Позиция,ШР.Подразделение,ШР.Должность,СО.КлассУсловийТруда,СО.ДатаОценки,СО.РезультатОценки,Сотрудники.ФИОИЗПредставлениеШтатноеРасписание КАК ШРЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлассыУсловийТрудаПоДолжностям КАК СОПО ШР.Позиция = СО.ДолжностьЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СотрудникиПО ШР.Сотрудник = Сотрудники.СсылкаГДЕШР.Организация = &ОрганизацияИ ШР.ДатаНачала <= &ДатаИ (СО.ДатаОценки ЕСТЬ NULL ИЛИ СО.ДатаОценки >= &Дата)—
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/923187/ — подробное описание работы с подразделом «Специальная оценка условий труда» в ЗУП КОРП, включая алгоритмы и примеры документов и отчетов.
Если нужно, могу помочь с примером кода или настройкой конкретного отчета.
—
29 декабря 2025 в 12:15 в ответ на: Как убрать пунктирные линии при печати этикеток в 1С УНФ? #35355Павел, привет!
Появление пунктирных линий при печати этикеток и ценников в 1С:УНФ обычно связано с настройками макета печатной формы или шаблона этикетки/ценника. Вот основные причины и способы их устранения:
1. **Границы таблиц и ячеек в макете**
В конструкторе шаблонов этикеток и ценников часто используются табличные структуры. Если в настройках ячеек или таблиц включены границы, они могут отображаться как пунктирные линии при печати.
**Решение:**
— Откройте шаблон в редакторе макетов.
— Выделите таблицу или ячейки, где видны пунктирные линии.
— В свойствах границ установите «нет» или «без границ» для всех линий.
— Сохраните и проверьте печать.2. **Отладочные линии в макете**
Иногда разработчики или пользователи оставляют в макете линии для визуального контроля расположения элементов. Они могут быть пунктирными и отображаться при печати.
**Решение:**
— Проверьте макет на наличие таких линий и удалите их.3. **Особенности драйвера принтера или печати в PDF**
В редких случаях драйвер принтера или способ печати (например, в PDF) может отображать границы ячеек пунктиром.
**Решение:**
— Попробуйте распечатать на другом принтере или сохранить в PDF с другими настройками.
— Обновите драйвер принтера.4. **Использование шаблонов с предустановленными границами**
В стандартных шаблонах 1С для этикеток и ценников иногда по умолчанию стоят границы для удобства редактирования. Если вы используете стандартный шаблон без изменений, линии могут остаться.
**Решение:**
— Создайте или отредактируйте шаблон, убрав границы.—
Если кратко, пунктирные линии — это границы таблиц или ячеек в макете, которые можно отключить в редакторе шаблонов.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1867782/ — там подробно описаны шаблоны этикеток и ценников, в том числе работа с границами.
Если нужна помощь с конкретным макетом — могу помочь с примером кода или настройками.
—
Если интересно, могу показать пример кода для удаления границ в макете 1С.
27 декабря 2025 в 16:00 в ответ на: Как узнать % оставшегося места на SQL сервере в SSMS 20.2? #35353В MS SQL Server Management Studio (SSMS) 20.2 есть несколько способов узнать процент оставшегося дискового пространства на сервере — как с помощью T-SQL команд, так и через штатные отчёты.
—
### 1. Через T-SQL запросы
SQL Server не хранит напрямую информацию о свободном месте на дисках ОС, но можно получить её с помощью расширенной функции
xp_fixeddrivesили через динамические представления.#### Пример 1. Использование
xp_fixeddrivesMySQL1EXEC xp_fixeddrives;Выводит список дисков с количеством свободного места в мегабайтах.
Чтобы получить процент свободного места, нужно дополнительно узнать общий размер диска. Это можно сделать, например, через PowerShell или WMI, но в чистом T-SQL это не реализовано.
#### Пример 2. Использование расширенного запроса с WMI через SQL Server
MySQL12345678910111213DECLARE @DriveSpace TABLE (Drive VARCHAR(2),FreeSpaceMB INT,TotalSpaceMB INT,FreeSpacePercent DECIMAL(5,2));INSERT INTO @DriveSpace (Drive, FreeSpaceMB, TotalSpaceMB, FreeSpacePercent)EXEC xp_cmdshell 'wmic logicaldisk get name,freespace,size /format:csv';-- Обработка результата xp_cmdshell требует дополнительной обработки, поэтому проще использовать PowerShell или внешние скрипты.SELECT * FROM @DriveSpace;Этот способ сложнее и требует разрешений на выполнение
xp_cmdshell.—
### 2. Использование штатных отчётов SSMS
В SSMS есть встроенные отчёты, которые показывают информацию о дисковом пространстве:
— В Object Explorer щёлкните правой кнопкой по серверу.
— Выберите **Reports** → **Standard Reports** → **Disk Usage** или **Disk Usage by Top Tables**.Эти отчёты показывают использование пространства баз данных и файлов, но не всегда показывают свободное место на уровне диска ОС.
—
### 3. Использование системных представлений для анализа файлов баз данных
Можно узнать размер файлов баз данных и свободное место внутри них:
MySQL1234567891011SELECTdb.name AS DatabaseName,mf.name AS LogicalName,mf.physical_name,mf.size / 128.0 AS SizeMB,mf.size / 128.0 - CAST(FILEPROPERTY(mf.name, 'SpaceUsed') AS INT) / 128.0 AS FreeSpaceMB,((mf.size / 128.0 - CAST(FILEPROPERTY(mf.name, 'SpaceUsed') AS INT) / 128.0) * 100.0) / (mf.size / 128.0) AS FreeSpacePercentFROM sys.master_files mfINNER JOIN sys.databases db ON db.database_id = mf.database_idWHERE mf.type_desc = 'ROWS'ORDER BY db.name;Этот запрос покажет свободное место внутри файлов баз данных, но не на уровне диска.
—
### Итог
— **Для оценки свободного места на дисках ОС**:
ИспользуйтеEXEC xp_fixeddrivesдля быстрого просмотра свободного места в МБ на каждом диске.— **Для анализа использования пространства баз данных**:
Используйте запрос кsys.master_filesиFILEPROPERTY(пример выше).— **Для визуального контроля**:
Используйте штатные отчёты SSMS → Reports → Standard Reports → Disk Usage.—
Рекомендую посмотреть здесь:
https://winitpro.ru/index.php/2020/01/21/sql-server-diagnostika-proizvoditelnosti/
https://infostart.ru/1c/articles/1128594/
https://infostart.ru/1c/articles/1059227/27 декабря 2025 в 10:00 в ответ на: Как в 1С сделать запрос для связывания табл. части с регистром цен на дату? #35351Анна, вот пример запроса на языке 1С, который выбирает данные из табличной части документа (например, «РеализацияТоваровУслуг.Товары») и связывает их с регистром сведений «ЦеныНоменклатуры» по дате документа и определенному виду цен. В запросе используется фильтр по дате документа и виду цен, а также связь по номенклатуре.
1С (Код)12345678910111213141516171819202122232425262728Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬТовары.Номенклатура,Товары.Количество,Товары.Сумма,ЦеныНоменклатуры.ЦенаИЗДокумент.РеализацияТоваровУслуг.Товары КАК ТоварыВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыПО Товары.Номенклатура = ЦеныНоменклатуры.НоменклатураИ ЦеныНоменклатуры.Период <= &ДатаДокументаИ ЦеныНоменклатуры.ТипЦен = &ВидЦенГДЕТовары.Ссылка = &СсылкаДокументаУПОРЯДОЧИТЬ ПОТовары.Номенклатура";Запрос.УстановитьПараметр("ДатаДокумента", ДокументОбъект.Дата);Запрос.УстановитьПараметр("ВидЦен", Справочники.ВидыЦен.НайтиПоНаименованию("Основной")); // или нужный вид ценЗапрос.УстановитьПараметр("СсылкаДокумента", ДокументОбъект.Ссылка);Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();Пока Выборка.Следующий() Цикл// Обработка результатов: Выборка.Номенклатура, Выборка.Количество, Выборка.Сумма, Выборка.ЦенаКонецЦикла;Объяснение:
- В запросе выбираются поля из табличной части документа "РеализацияТоваровУслуг.Товары".
- Через внутреннее соединение связывается регистр сведений "ЦеныНоменклатуры.СрезПоследних" по номенклатуре.
- Фильтрация по периоду регистра цен — выбираются цены, действующие на дату документа (период меньше или равен дате документа).
- Фильтрация по виду цен (параметр &ВидЦен).
- Ограничение по конкретному документу (параметр &СсылкаДокумента).Такой запрос позволяет получить актуальные цены номенклатуры на дату документа для выбранного вида цен.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/98956/
26 декабря 2025 в 17:45 в ответ на: Как настроить лицензирование 1С в кластере с двумя серверами приложений? #35323Для настройки лицензирования 1С в кластере с двумя серверами приложений (например, srv1 и srv2) рекомендуется использовать выделенный сервер лицензирования (например, srv3). Это позволит централизованно управлять лицензиями и обеспечить отказоустойчивость.
### Общая схема настройки лицензирования в кластере с двумя серверами приложений:
1. **Установка ПО:**
— На всех трех серверах (srv1, srv2, srv3) устанавливаем «Сервер 1С:Предприятия (64-bit) для Windows».
— На srv3 будет настроен сервер лицензирования.
— На srv1 и srv2 — серверы приложений 1С.2. **Создание и настройка кластера:**
— На srv1 запускаем консоль администрирования 1С (обычноc:Program Files1cv8common1CV8 Servers (x86-64).msc).
— В консоли переименовываем локальный кластер в, например,CLUSTER1C.
— Добавляем в консоль srv2 и srv3, чтобы видеть все сервера в одном окне.
— На srv2 удаляем локальный кластер (чтобы не было конфликтов).
— ВCLUSTER1Cна srv1 добавляем рабочих серверов srv2 и srv3.
— Для srv2 и srv3 в свойствах рабочих серверов устанавливаем нужные функциональности.3. **Настройка функциональностей для серверов:**
— **Для сервера лицензирования (srv3):**
— В свойствах рабочего сервера srv3 добавляем требования назначения функциональности:
— Объект требования: Любой объект требования — Тип: Не назначать — Для всех баз (оставляем поле имени базы пустым).
— Объект требования: Сервис лицензирования — Тип: Назначать — Для всех баз.
— Это гарантирует, что srv3 будет только сервером лицензирования и не будет выполнять другие функции.— **Для серверов приложений (srv1 и srv2):**
— В свойствах рабочих серверов srv1 и srv2 добавляем требования назначения функциональности:
— Объект требования: Клиентское соединение с ИБ — Тип: Назначать — Для всех баз.
— Объект требования: Сервис лицензирования — Тип: Не назначать — Для всех баз.
— Это означает, что srv1 и srv2 будут обслуживать клиентские подключения, но лицензии не будут хранить.4. **Установка уровня отказоустойчивости:**
— В свойствах кластераCLUSTER1Cустанавливаем уровень отказоустойчивости равный 1 (формула: количество центральных серверов = уровень отказоустойчивости + 1).
— Для этого в свойствах рабочего сервера srv2 ставим галочку «Центральный сервер».5. **Применение настроек:**
— В консоли администрирования на кластере выбираем пункт «Применить требования назначения функциональности (полное)».
— Перезапускаем службы 1С на всех серверах.6. **Активация лицензий:**
— Все программные лицензии (серверные и клиентские) активируются на сервере лицензирования (srv3).
— Сервер лицензирования не требует отдельной серверной лицензии, если на нем не запущен кластер.7. **Проверка работы:**
— Клиенты подключаются к серверам приложений (srv1 или srv2).
— Серверы приложений получают лицензии с сервера лицензирования (srv3).
— В случае отказа одного из серверов приложений, второй продолжит работу, обеспечивая отказоустойчивость.—
### Краткий пример требований назначения функциональности:
| Сервер | Объект требования | Тип требования | Для всех баз | Комментарий |
|—————|—————————-|—————-|—————|———————————|
| srv3 (лиценз.) | Любой объект требования | Не назначать | Да | Запрет на другие сервисы |
| srv3 (лиценз.) | Сервис лицензирования | Назначать | Да | Выдача лицензий |
| srv1, srv2 | Клиентское соединение с ИБ | Назначать | Да | Обслуживание клиентов |
| srv1, srv2 | Сервис лицензирования | Не назначать | Да | Не хранить лицензии |—
### Важные моменты:
— Сервер лицензирования не должен иметь локального кластера (удалите его в консоли администрирования).
— Не забудьте настроить firewall, чтобы разрешить обмен между серверами.
— При изменении конфигурации оборудования серверов приложений лицензии не слетают, так как они привязаны к серверу лицензирования.
— Для масштабирования можно добавить дополнительные серверы приложений в кластер.—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/307973/
https://infostart.ru/1c/articles/1027743/
https://1s-on.ru/nastrojka-vydelennogo-servera-liczenzij-1s-predpriyatiya/26 декабря 2025 в 16:30 в ответ на: Как отредактировать запрос для временной таблицы с ссылками номенклатур? #35299Димон, привет!
Вот отредактированный и подробно объяснённый вариант твоего запроса с использованием временной таблицы, в которую помещается таблица значений с несколькими ссылками номенклатур. Также исправлены ошибки в синтаксисе и логике соединений.
1С (Код)12345678910111213141516171819202122232425// Предполагается, что параметр &ТаблЗнач - это ТаблицаЗначений с колонкой "Ссылка" типа Справочник.Номенклатура// 1. Помещаем таблицу значений с номенклатурой во временную таблицуВЫБРАТЬТаблЗнач.Ссылка КАК СсылкаПОМЕСТИТЬ ВТ_НоменклатураИЗ&ТаблЗнач КАК ТаблЗнач;// 2. Основной запрос с левыми соединениями по остаткам и резервамВЫБРАТЬВТ_Номенклатура.Ссылка КАК Номенклатура,ПартииТоваровНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,УчетРезервовТМЦОстатки.КоличествоОстаток КАК РезервИЗВТ_Номенклатура КАК ВТ_НоменклатураЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Дата, ) КАК ПартииТоваровНаСкладахОстаткиПО ВТ_Номенклатура.Ссылка = ПартииТоваровНаСкладахОстатки.НоменклатураЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетРезервовТМЦ.Остатки() КАК УчетРезервовТМЦОстаткиПО ВТ_Номенклатура.Ссылка = УчетРезервовТМЦОстатки.НоменклатураГДЕ(ПартииТоваровНаСкладахОстатки.Склад В (&Склады))И (УчетРезервовТМЦОстатки.Склад В (&Склады));—
### Объяснение:
1. **Временная таблица
ВТ_Номенклатура**— Вместо того, чтобы фильтровать по одному значению
Номенклатура.Ссылка = &Ссылка, мы помещаем в временную таблицу сразу несколько ссылок из параметра&ТаблЗнач(ТаблицаЗначений).
— Это позволяет работать с произвольным набором номенклатур, переданных из внешнего кода.2. **Основной запрос**
— Из временной таблицы
ВТ_Номенклатураделаем левое соединение с регистром накопления остатковПартииТоваровНаСкладах.Остаткии регистром резервовУчетРезервовТМЦ.Остатки.
— В соединениях по полюНоменклатураиспользуется прямая ссылка, без.Ссылка, так как поле уже является ссылкой.
— Для регистраПартииТоваровНаСкладах.Остаткипередаётся параметр периода&Дата(например, текущая дата).
— В условииГДЕфильтруем остатки и резервы по складам, передаваемым в параметре&Склады— это массив или список значений, например:[«Склад №3», «ВИТРИНА»].
— Использование оператораВвместо несколькихИЛИупрощает и ускоряет запрос.3. **Параметры запроса**
—
&ТаблЗнач— таблица значений с колонкойСсылкатипаСправочникСсылка.Номенклатура.
—&Дата— дата, на которую берутся остатки.
—&Склады— список наименований складов для фильтрации.—
### Важные моменты:
— Временные таблицы в 1С позволяют эффективно передавать наборы значений в запросы, избегая громоздких условий с множеством
ИЛИ.
— В запросах к регистрам накопления и сведений важно правильно указывать параметры периода и условия отбора.
— Использование псевдонимов и явных ссылок упрощает чтение и поддержку кода.
— Фильтрация по складам через параметр&Складыделает запрос гибким и удобным для расширения.—
Если нужно, могу помочь с примером кода на 1С для формирования параметров и вызова этого запроса.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/69743/
26 декабря 2025 в 14:45 в ответ на: Как изменить реквизиты возврата в 1С: «Себестоимость» = «Цена»? #35297ВТИ Николай, вот пример произвольного алгоритма на 1С для группового изменения реквизитов в документе «Возврат от клиента», где в табличной части столбец «Себестоимость» будет установлен равным значению столбца «Цена»:
1С (Код)1234567891011// Получаем табличную часть документа ВозвратОтКлиента, например, "Товары"Для каждого Строка Из Объект.Товары Цикл// Проверяем, что в строке заполнено значение ЦенаЕсли ЗначениеЗаполнено(Строка.Цена) Тогда// Присваиваем Себестоимость значение из ЦенаСтрока.Себестоимость = Строка.Цена;КонецЕсли;КонецЦикла;// Сохраняем изменения документаОбъект.Записать();Объяснение:
—Объект— текущий обрабатываемый документ.
—Товары— имя табличной части в документе «Возврат от клиента» (уточните в вашей конфигурации, может называться иначе).
— В цикле по всем строкам табличной части присваиваем реквизитуСебестоимостьзначение из реквизитаЦена.
— В конце сохраняем изменения методомЗаписать().Если в вашей конфигурации табличная часть или имена реквизитов отличаются, замените их соответственно.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/2371120/
26 декабря 2025 в 14:00 в ответ на: Где найти логи обновления конфигурации 1С на SQL сервере через конфигуратор? #35295Логирование обновления конфигурации базы данных 1С, расположенной на MS SQL, при выполнении обновления через конфигуратор, по умолчанию не ведётся в виде отдельного файла автоматически. Однако есть несколько способов получить логи и отследить процесс обновления:
1. **Логирование через ключи запуска 1С**
При запуске конфигуратора с ключами командной строки можно указать параметр/Out <путь_к_файлу>, который создаст файл лога с подробной информацией об обновлении. Например:1С (Код)11cv8.exe CONFIG /S "сервербаза" /N"пользователь" /P"пароль" /UpdateCfg "путь_к_файлу.cfu" /UpdateDBCfg /Out "C:Logsupdate.log"В этом файле будет содержаться подробная информация о процессе обновления.
2. **Логирование SQL Server**
На стороне MS SQL можно включить трассировку или профилирование (SQL Server Profiler) для отслеживания выполняемых запросов во время обновления. Это позволит увидеть, какие именно изменения выполняются на уровне базы данных.3. **Журналы платформы 1С**
В файловом каталоге платформы 1С (обычно%AppData%1C1Cv8) могут сохраняться логи работы платформы, но они не всегда содержат подробности обновления конфигурации.4. **Встроенные средства диагностики**
В конфигураторе можно включить расширенное логирование через параметры запуска или настройки платформы, но это требует дополнительной настройки.—
**Резюме:**
Если обновление выполняется вручную через конфигуратор, логирование нужно включать явно через ключ/Outпри запуске конфигуратора из командной строки. Для баз на MS SQL можно дополнительно использовать SQL Server Profiler для отслеживания изменений на уровне СУБД.—
Рекомендую посмотреть здесь:
https://infostart.ru/public/165167/
https://infostart.ru/1c/articles/143517/26 декабря 2025 в 12:45 в ответ на: Можно ли в кластере 1С регистрировать клиентские лицензии на каждом сервере? #35293В кластере 1С с двумя серверами приложений технически возможно активировать клиентские лицензии локально на каждом из серверов, но это не рекомендуется и приведёт к ряду проблем:
1. **Нарушение централизованного учёта лицензий**
При локальной регистрации лицензий на каждом сервере лицензии не будут учитываться централизованно. Это значит, что каждый сервер будет считать свои лицензии отдельно, что может привести к превышению общего количества лицензий, приобретённых у 1С, и нарушению лицензионного соглашения.2. **Риск конфликтов и ошибок лицензирования**
Если лицензии активированы локально, кластер не сможет корректно распределять лицензии между серверами. Это может привести к ошибкам при выдаче лицензий клиентам, например, когда одна и та же лицензия будет «заблокирована» на одном сервере, а другой сервер будет считать, что лицензий достаточно.3. **Сложности в администрировании и поддержке**
Управлять лицензиями на нескольких серверах сложнее, чем централизованно. При обновлении, переносе или восстановлении лицензий потребуется выполнять операции на каждом сервере отдельно, что увеличивает риск ошибок и время на поддержку.4. **Отсутствие отказоустойчивости сервера лицензирования**
Если лицензии активированы локально, то при выходе из строя одного из серверов приложения часть лицензий станет недоступной, что снизит общую отказоустойчивость системы.—
**Рекомендация:**
Для кластера 1С с несколькими серверами приложений следует выделить отдельный сервер лицензирования (или один из серверов сделать центральным сервером лицензирования), на котором активируются все клиентские и серверные лицензии. Остальные сервера приложений в кластере настраиваются на получение лицензий с этого сервера лицензирования через функциональность «Сервис лицензирования». Это обеспечивает централизованный учёт, корректное распределение лицензий и упрощает администрирование.—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1027743/
https://1s-on.ru/nastrojka-vydelennogo-servera-liczenzij-1s-predpriyatiya/26 декабря 2025 в 12:45 в ответ на: Как зарегистрировать клиентские лицензии в кластере 1С с 2 серверами? #35291В кластере 1С с двумя серверами приложений технически возможно активировать клиентские лицензии локально на каждом из серверов, но это не рекомендуется и приведёт к ряду проблем:
1. **Нарушение централизованного учёта лицензий**
При локальной регистрации лицензий на каждом сервере лицензии не будут учитываться централизованно. Это значит, что каждый сервер будет считать свои лицензии отдельно, что может привести к превышению общего количества лицензий, приобретённых у 1С, и нарушению лицензионного соглашения.2. **Риск конфликтов и ошибок лицензирования**
Если лицензии активированы локально, кластер не сможет корректно распределять лицензии между серверами. Это может привести к ошибкам при выдаче лицензий клиентам, например, когда одна и та же лицензия будет «заблокирована» на одном сервере, а другой сервер будет считать, что лицензий достаточно.3. **Сложности в администрировании и поддержке**
Управлять лицензиями на нескольких серверах сложнее, чем централизованно. При обновлении, переносе или восстановлении лицензий потребуется выполнять операции на каждом сервере отдельно, что увеличивает риск ошибок и время на поддержку.4. **Отсутствие отказоустойчивости сервера лицензирования**
Если лицензии активированы локально, то при выходе из строя одного из серверов приложения часть лицензий станет недоступной, что снизит общую отказоустойчивость системы.—
**Рекомендация:**
Для кластера 1С с несколькими серверами приложений следует выделить отдельный сервер лицензирования (или один из серверов сделать центральным сервером лицензирования), на котором активируются все клиентские и серверные лицензии. Остальные сервера приложений в кластере настраиваются на получение лицензий с этого сервера лицензирования через функциональность «Сервис лицензирования». Это обеспечивает централизованный учёт, корректное распределение лицензий и упрощает администрирование.—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1027743/
https://1s-on.ru/nastrojka-vydelennogo-servera-liczenzij-1s-predpriyatiya/26 декабря 2025 в 12:45 в ответ на: Можно ли в кластере 1С с двумя серверами регистрировать локально лицензии? #35289В кластере 1С с двумя серверами приложений технически возможно активировать клиентские лицензии локально на каждом из серверов, но это не рекомендуется и приведёт к ряду проблем:
1. **Нарушение централизованного учёта лицензий**
При локальной регистрации лицензий на каждом сервере лицензии не будут учитываться централизованно. Это значит, что каждый сервер будет считать свои лицензии отдельно, что может привести к превышению общего количества лицензий, приобретённых у 1С, и нарушению лицензионного соглашения.2. **Риск конфликтов и ошибок лицензирования**
Если лицензии активированы локально, кластер не сможет корректно распределять лицензии между серверами. Это может привести к ошибкам при выдаче лицензий клиентам, например, когда одна и та же лицензия будет «заблокирована» на одном сервере, а другой сервер будет считать, что лицензий достаточно.3. **Сложности в администрировании и поддержке**
Управлять лицензиями на нескольких серверах сложнее, чем централизованно. При обновлении, переносе или восстановлении лицензий потребуется выполнять операции на каждом сервере отдельно, что увеличивает риск ошибок и время на поддержку.4. **Отсутствие отказоустойчивости сервера лицензирования**
Если лицензии активированы локально, то при выходе из строя одного из серверов приложения часть лицензий станет недоступной, что снизит общую отказоустойчивость системы.—
**Рекомендация:**
Для кластера 1С с несколькими серверами приложений следует выделить отдельный сервер лицензирования (или один из серверов сделать центральным сервером лицензирования), на котором активируются все клиентские и серверные лицензии. Остальные сервера приложений в кластере настраиваются на получение лицензий с этого сервера лицензирования через функциональность «Сервис лицензирования». Это обеспечивает централизованный учёт, корректное распределение лицензий и упрощает администрирование.—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1027743/
https://1s-on.ru/nastrojka-vydelennogo-servera-liczenzij-1s-predpriyatiya/ -
АвторСообщения
