Ответы в темах
-
АвторСообщения
-
9 августа 2026 в 13:58 в ответ на: Почему не печатает этикетка по конкретной номенклатуре в 1С? #38358
Сообщение «Печатная форма недоступна» при попытке распечатать этикетку по конкретной номенклатуре обычно связано с тем, что для этого объекта не назначена или не подключена нужная печатная форма.
Что проверить и сделать:
1. Проверьте наличие печатной формы для этой номенклатуры
— В конфигураторе или в пользовательском режиме зайдите в справочник «Номенклатура».
— Откройте карточку проблемной номенклатуры.
— Посмотрите, есть ли у нее назначенная печатная форма этикетки (например, в реквизитах или в дополнительных настройках).
— Если печатная форма назначается через дополнительные обработки или внешние печатные формы, убедитесь, что для этой номенклатуры есть соответствующая запись.2. Проверьте настройки печатных форм
— В разделе «Администрирование» — «Дополнительные обработки и отчеты» (или аналогичный) найдите список внешних печатных форм.
— Убедитесь, что нужная печатная форма подключена и активна.
— Проверьте, что в настройках печати нет фильтра по номенклатуре, который исключает эту позицию.3. Проверьте права доступа
— Возможно, у пользователя нет прав на использование данной печатной формы или на просмотр этой номенклатуры.
— Проверьте роли и права пользователя.4. Проверьте код печатной формы (если она внешняя)
— Если печатная форма реализована во внешней обработке, проверьте, что в коде нет условий, которые исключают печать для этой номенклатуры.
— Иногда в коде есть фильтры по типу или свойствам номенклатуры.5. Проверьте, не требуется ли проведение документа
— В некоторых конфигурациях печать этикеток возможна только для проведенных документов или объектов.
— Если номенклатура связана с документом, проверьте его состояние.6. Логирование и отладка
— Включите журнал регистрации и посмотрите, нет ли ошибок при попытке вызова печатной формы.
— Если есть возможность, отладьте процедуру вызова печати.Если нужна конкретика, укажите:
— Конфигурацию 1С (например, УТ 11, БП 3.0 и т.п.)
— Какая именно печатная форма используется (встроенная или внешняя)
— Как именно вызывается печать (через меню, обработку, команду формы)
— Есть ли ошибки в журнале регистрацииРекомендую посмотреть здесь, там подробно разбирают похожие ситуации:
https://infostart.ru/1c/articles/1439611/ — про печать непроведенных документов и проблемы с печатными формами.Если печать внешняя, можно попробовать обход с помощью расширения, чтобы снять проверку проведенности и доступности печатной формы.
Если нужна помощь с конкретным кодом или настройками — приложите скриншоты или код вызова печати.
Процедура ПоискСоответсвиеНоменклатур выполняет поиск и преобразование номенклатуры покупателя в номенклатуру вашей базы с учётом возможных коэффициентов пересчёта количества.
Подробно:
1. Входные параметры:
—КодНоменклатурыПокупателя— код товара у покупателя (внешний код).
—Номенклатура— переменная, в которую будет записан найденный элемент справочника «Номенклатура».
—Количество— переменная для результата пересчёта количества.
—КоличествоЗаказа— исходное количество из заказа покупателя.2. Что делает процедура:
— Выполняет запрос к регистру сведений
СоответствиеНоменклатурСПокупателем, где хранятся связи между кодами номенклатуры покупателя и вашей номенклатурой, а также параметры пересчёта количества (Делить,Умножить,Число).— Если по коду покупателя в регистре нет записи (
Пустой()), то:
— Пытается найти номенклатуру в справочнике «Номенклатура» по коду покупателя напрямую.
— Количество просто приравнивает кКоличествоЗаказабез изменений.— Если запись есть, то для каждой найденной строки:
— В переменнуюНоменклатуразаписывается связанная номенклатура из регистра.
— Если установлен флагУмножить, тоКоличество = КоличествоЗаказа * Число.
— Если установлен флагДелить, тоКоличество = КоличествоЗаказа / Числос округлением до 2 знаков.
— Если ни один флаг не установлен,Количествопросто равноКоличествоЗаказа.3. Итог:
— Процедура позволяет по внешнему коду номенклатуры покупателя получить внутреннюю номенклатуру и пересчитать количество с учётом коэффициентов умножения или деления.
— Это удобно, если у покупателя своя система кодирования товаров и свои единицы измерения, отличающиеся от вашей базы.—
Если кратко:
Процедура ищет соответствие номенклатуры покупателя в вашем справочнике и корректирует количество заказа с учётом коэффициентов пересчёта. Если соответствия нет, пытается найти номенклатуру по коду напрямую и количество не меняет.8 августа 2026 в 8:25 в ответ на: Как изменение галочки «Включено» и времени задания повлияет на его работу? #38354Если перед редактированием регламентного задания снять галочку «Включено», то задание временно отключится и не будет выполняться. После того как вы измените время срабатывания и снова установите галочку «Включено», задание снова станет активным и будет запускаться по новому расписанию.
То есть:
— Пока галочка «Включено» снята — задание не срабатывает.
— После повторного включения — задание начинает работать с обновлёнными параметрами.Важно: если вы отключили задание, то в этот период оно не запустится, даже если по старому расписанию должен был сработать запуск. Запуск начнётся только после включения.
Так что да, после включения с новым временем расписания задание сработает согласно новым настройкам.
8 августа 2026 в 8:08 в ответ на: Как в запросе 1С исключить услуги или учитывать только товары? #38352Чтобы в вашем запросе исключить услуги (т.е. пропустить документы, в табличной части которых есть только услуги, или вообще исключить услуги из выборки), нужно добавить условие по типу номенклатуры.
В УТ 11.5 у номенклатуры есть реквизит «ТипНоменклатуры» (Перечисление.ТипыНоменклатуры), где есть значения «Товар», «Услуга» и т.п.
Для этого нужно:
1. В запросе, где формируется временная таблица ВТ_Доки, добавить соединение с табличной частью и фильтр по типу номенклатуры — чтобы брать только документы, где есть товары (не услуги).
2. Либо, если нужно пропускать документы, в которых есть только услуги, а с товарами — брать, то нужно группировать по документу и проверять наличие товаров.
Пример упрощённого варианта — взять документы, у которых в табличной части есть хотя бы одна строка с номенклатурой типа «Товар»:
|ВЫБРАТЬ
| DISTINCT Реализация.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ВТ_Доки
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары
| ПО Товары.Ссылка = Реализация.Ссылка
|ГДЕ
| Реализация.Проведен
| И Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
|;
|
|ВЫБРАТЬ
| ВТ_Доки.Ссылка КАК Ссылка
|ИЗ
| ВТ_Доки КАК ВТ_Доки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
| ПО ВТ_Доки.Ссылка = ТоварыНаСкладах.Регистратор
|ГДЕ
| ТоварыНаСкладах.Регистратор ЕСТЬ NULL—
Если нужно исключить услуги полностью из выборки, то фильтр по типу номенклатуры в первом запросе — самый простой и правильный способ.
Если же нужно брать документы, где есть и товары, и услуги, но при этом проверять отсутствие движений по товарам, то нужно усложнить запрос — например, группировать по документу и проверять наличие товаров.
—
Если нужна помощь с более сложным вариантом — уточните.
8 августа 2026 в 8:00 в ответ на: Как исправить запрос, чтобы отбирать документы без движения в регистре? #38350В вашем запросе ошибка в том, что вы пытаетесь отобрать документы, у которых нет движений в регистре «ТоварыНаСкладах», но при этом делаете соединение по табличной части с внутренним соединением, а потом в выборке по регистру используете левое соединение, но условие «ТоварыНаСкладах.Регистратор ЕСТЬ NULL» не сработает, потому что в первой части вы уже отобрали только те документы, у которых есть строки в табличной части.
Чтобы исправить запрос и получить документы реализации, которые проведены, попадают в период, и по которым нет движений в регистре «ТоварыНаСкладах», сделайте так:
1. Сначала выберите все проведённые документы реализации за период (без привязки к табличной части).
2. Затем сделайте левое соединение с регистром «ТоварыНаСкладах» по регистратору.
3. Отберите только те документы, у которых в регистре нет записей (т.е. регистратор NULL).Пример исправленного запроса:
|ВЫБРАТЬ
| Реализация.Ссылка КАК Ссылка,
| Реализация.Дата КАК ДатаДокумента,
| Реализация.Номер КАК НомерДокумента
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
|ГДЕ
| Реализация.Проведен
| И Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И НЕ СУЩЕСТВУЕТ (
| ВЫБРАТЬ
| 1
| ИЗ
| РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
| ГДЕ
| ТоварыНаСкладах.Регистратор = Реализация.Ссылка
| )Если нужно по конкретным номенклатурам из табличной части, то можно сделать так:
|ВЫБРАТЬ
| Реализация.Ссылка КАК Ссылка,
| Реализация.Дата КАК ДатаДокумента,
| Реализация.Номер КАК НомерДокумента
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
|ГДЕ
| Реализация.Проведен
| И Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И НЕ СУЩЕСТВУЕТ (
| ВЫБРАТЬ
| 1
| ИЗ
| РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары
| ПО Товары.Ссылка = ТоварыНаСкладах.Регистратор
| ГДЕ
| Товары.Ссылка = Реализация.Ссылка
| )—
Почему так?
— Левое соединение с условием «ТоварыНаСкладах.Регистратор ЕСТЬ NULL» в вашем варианте не работает, потому что вы сначала берёте только те документы, у которых есть табличная часть (внутреннее соединение), а потом пытаетесь найти отсутствие движений — это логически конфликт.
— Использование подзапроса с НЕ СУЩЕСТВУЕТ — самый простой и надёжный способ проверить отсутствие движений по регистру.
—
Если хотите именно через временную таблицу и соединения, то нужно:
1. В первую временную таблицу положить все проведённые документы реализации за период (без соединения с табличной частью).
2. Во второй выборке сделать левое соединение с регистром «ТоварыНаСкладах» по регистратору.
3. Отобрать записи, где регистратор NULL.
Пример:
|ВЫБРАТЬ
| Реализация.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ВТ_Доки
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
|ГДЕ
| Реализация.Проведен
| И Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода
|;
|
|ВЫБРАТЬ
| ВТ_Доки.Ссылка КАК Ссылка
|ИЗ
| ВТ_Доки КАК ВТ_Доки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
| ПО ВТ_Доки.Ссылка = ТоварыНаСкладах.Регистратор
|ГДЕ
| ТоварыНаСкладах.Регистратор ЕСТЬ NULL—
Так запрос будет работать корректно и покажет документы реализации без движений в регистре «ТоварыНаСкладах».
8 августа 2026 в 7:57 в ответ на: Как исправить ошибку «поле объекта не обнаружено НДСВтабличнойчасти» в УТ 11.5? #38348Ошибка «поле объекта не обнаружено НДСВтабличнойчасти» в УТ 11.5 обычно возникает, когда в табличной части документа или справочника пытаются обратиться к реквизиту, которого там нет. В вашем случае — к полю «НДС».
Чаще всего причины и решения такие:
1. В табличной части действительно нет реквизита «НДС»
— Проверьте конфигурацию: откройте конфигуратор, найдите нужный объект (например, табличную часть документа РеализацияТоваровУслуг или другой) и убедитесь, что в ней есть реквизит «НДС».
— В УТ 11.5 поле НДС может называться иначе, например «СтавкаНДС» или «СуммаНДС».
— Если вы используете кастомный отчет или обработку, проверьте, что обращение к полю соответствует реальному имени реквизита.2. Ошибка в коде или запросе
— Если ошибка возникает при выполнении запроса, проверьте, что в запросе указано правильное имя поля.
— Например, в табличной части документа «Товары» поле может называться «СтавкаНДС», а не просто «НДС».
— Пример правильного обращения в запросе:|ВЫБРАТЬ
| Товары.Номенклатура,
| Товары.Количество,
| Товары.СтавкаНДС
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК Товары3. Обновление конфигурации и совместимость
— Если вы недавно обновляли конфигурацию или переносили код из другой версии, возможно, структура табличных частей изменилась.
— Проверьте актуальность конфигурации и соответствие кода.4. Исправление в коде
— Найдите место, где происходит обращение к полю «НДС» в табличной части.
— Замените на правильное имя поля, например «СтавкаНДС» или «СуммаНДС».
— Если нужно получить ставку НДС числом, используйте функцию, которая возвращает ставку из перечисления.—
Если нужна помощь с конкретным кодом или запросом — приложите его, помогу исправить.
Отчет «Оборачиваемость по поставщику» в 1С обычно показывает, как быстро происходит оплата и оборот по расчетам с конкретным поставщиком: суммы поступлений, оплат, остатки задолженности, сроки оплаты и т.п.
Пример простого варианта отчета оборачиваемости по поставщику на языке запросов 1С:
|ВЫБРАТЬ
| Поставщик.Ссылка КАК Поставщик,
| Поставщик.Наименование КАК НаименованиеПоставщика,
| Док.ПоступлениеТоваровУслуг.Номер КАК НомерДокумента,
| Док.ПоступлениеТоваровУслуг.Дата КАК ДатаДокумента,
| Док.ПоступлениеТоваровУслуг.СуммаДокумента,
| Платежи.СуммаОплаты,
| (Док.ПоступлениеТоваровУслуг.СуммаДокумента — Платежи.СуммаОплаты) КАК ОстатокЗадолженности
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК Док
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Поставщик
| ПО Док.Поставщик = Поставщик.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ
| (ВЫБРАТЬ
| Платежи.ДокументРасчета КАК ДокументРасчета,
| СУММА(Платежи.Сумма) КАК СуммаОплаты
| ИЗ
| Документ.ПлатежныйОрдер КАК Платежи
| ГДЕ
| Платежи.Контрагент = &Поставщик
| СГРУППИРОВАТЬ ПО
| Платежи.ДокументРасчета) КАК Платежи
| ПО Платежи.ДокументРасчета = Док.Ссылка
|ГДЕ
| Поставщик.Ссылка = &Поставщик
| И Док.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
|УПОРЯДОЧИТЬ ПО
| Док.ДатаПояснения:
— &Поставщик — параметр отчета, ссылка на нужного поставщика.
— &ДатаНачала и &ДатаКонца — период анализа.
— В выборке берутся документы поступления, суммы по ним, суммы оплат и остаток задолженности.
— Можно расширить отчет, добавив сроки оплаты, просрочки, средний срок оплаты и т.п.Если нужна более сложная аналитика (например, расчет оборачиваемости запасов, анализ по договорам, детализация по складам), то нужно строить запрос с учетом этих параметров.
Для быстрого старта можно использовать стандартные отчеты 1С:
— Отчет «Взаиморасчеты с контрагентами» (в разделе «Отчеты» — «Расчеты с контрагентами»).
— В настройках выбрать нужного поставщика, период, добавить колонки с остатками, оплатами, сроками.Если нужна помощь с конкретным вариантом отчета — уточните, что именно хотите видеть (например, обороты, сроки оплаты, остатки, детализация по документам).
Рекомендую посмотреть здесь, как строить запросы и отчеты по расчетам с поставщиками:
https://its.1c.ru/db/metod8dev#content:380:hdoc
https://infostart.ru/public/1043459/ (пример отчета по взаиморасчетам)
Чтобы программно установить значение отбора в динамическом списке на управляемой форме 1С, нужно работать с объектом динамического списка и его параметрами отбора. Основной способ — через объект Параметры динамического списка и метод УстановитьЗначениеПараметра().
Пример пошагово:
1. В форме должен быть элемент типа «Динамический список» (DynamicList), у которого в настройках стоит «Произвольный запрос» с параметрами отбора.
2. В событии формы на сервере (обычно ПриСозданииНаСервере или ПриОткрытииНаСервере) пишем код, который задаёт значение параметра отбора.
3. Для этого обращаемся к элементу динамического списка, к его свойству Параметры и вызываем метод УстановитьЗначениеПараметра(«ИмяПараметра», Значение).
4. После установки параметра нужно обновить список, чтобы отбор применился.
Пример кода:
|&НаСервере
|Процедура ПриСозданииНаСервере(Отказ)
| // Устанавливаем значение параметра отбора «Клиент»
| Элементы.ДинамическийСписок.Параметры.УстановитьЗначениеПараметра(«Клиент», Справочники.Клиенты.НайтиПоНаименованию(«Иванов Иван»));
|КонецПроцедурыЕсли нужно изменить отбор в процессе работы формы (например, по нажатию кнопки), то:
|&НаКлиенте
|Процедура КнопкаУстановитьОтборНажатие(Кнопка)
| // Передаём значение параметра на сервер
| Знач Клиент = Справочники.Клиенты.НайтиПоНаименованию(«Петров Петр»);
| // Вызываем серверную процедуру для установки параметра
| ВыполнитьОбработку(«УстановитьОтбор», Клиент);
| // Обновляем динамический список
| Элементы.ДинамическийСписок.Обновить();
|КонецПроцедуры
|
|&НаСервере
|Процедура УстановитьОтбор(Клиент)
| Элементы.ДинамическийСписок.Параметры.УстановитьЗначениеПараметра(«Клиент», Клиент);
|КонецПроцедурыЕсли в запросе динамического списка в условии отбора используется параметр с именем «Клиент», то при установке этого параметра динамический список отфильтрует данные по этому значению.
—
Если нужно программно установить отбор не через параметры, а через объект ЭлементыОтбораКомпоновкиДанных, то можно так:
|&НаСервере
|Процедура ПриСозданииНаСервере(Отказ)
| Отбор = Элементы.ДинамическийСписок.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Отбор;
| Если Отбор.Свойство(«Клиент») Тогда
| Отбор.Клиент.Значение = Справочники.Клиенты.НайтиПоНаименованию(«Иванов Иван»);
| Отбор.Клиент.ТипСравнения = ТипСравненияКомпоновкиДанных.Равно;
| КонецЕсли;
|КонецПроцедурыНо чаще и удобнее работать именно с параметрами динамического списка.
—
Рекомендую посмотреть здесь, там подробно про параметры динамического списка и отборы:
7 августа 2026 в 13:25 в ответ на: Как найти в УТ 11.5 проведенные документы реализации без движений по регистру? #38342Чтобы найти в УТ 11.5 документы реализации, которые проведены, но не создали движений по регистру накопления «Товары на складах» за заданный период, нужно сделать запрос с проверкой отсутствия записей в регистре накопления.
Пример запроса 1С (синтаксис запроса 1С):
|ВЫБРАТЬ
| Реализация.Ссылка КАК ДокументРеализации,
| Реализация.Дата КАК ДатаДокумента,
| Реализация.Номер КАК НомерДокумента
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
|ГДЕ
| Реализация.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
| И Реализация.Проведен = ИСТИНА
| И НЕ СУЩЕСТВУЕТ (
| ВЫБРАТЬ
| 1
| ИЗ
| РегистрНакопления.ТоварыНаСкладах КАК Товары
| ГДЕ
| Товары.Регистратор = Реализация.Ссылка
| )Пояснения:
—
Документ.РеализацияТоваровУслуг— основной документ реализации.
—РегистрНакопления.ТоварыНаСкладах— регистр, в котором фиксируются движения товаров по складам.
— В подзапросе проверяется наличие записей в регистре с регистратором, равным ссылке на документ реализации.
— Параметры&ДатаНачалаи&ДатаКонцазадают период.—
Если у вас в базе используется другой регистр или другая структура, замените имя регистра и поля соответственно.
—
Пример вызова запроса с параметрами:
|Запрос = Новый Запрос;
|Запрос.Текст =
|»
|ВЫБРАТЬ
| Реализация.Ссылка КАК ДокументРеализации,
| Реализация.Дата КАК ДатаДокумента,
| Реализация.Номер КАК НомерДокумента
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
|ГДЕ
| Реализация.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
| И Реализация.Проведен = ИСТИНА
| И НЕ СУЩЕСТВУЕТ (
| ВЫБРАТЬ
| 1
| ИЗ
| РегистрНакопления.ТоварыНаСкладах КАК Товары
| ГДЕ
| Товары.Регистратор = Реализация.Ссылка
| )
|»;
|
|Запрос.УстановитьПараметр(«ДатаНачала», НачалоПериода(ТекущаяДата()));
|Запрос.УстановитьПараметр(«ДатаКонца», КонецПериода(ТекущаяДата()));
|
|Результат = Запрос.Выполнить().Выбрать();—
Так вы получите список проведенных документов реализации, по которым нет движений в регистре «Товары на складах» за указанный период.
7 августа 2026 в 11:38 в ответ на: Почему в УТ 11.5 не заполняются этапы оплаты при выборе соглашения? #38340В УТ 11.5 заполнение этапов оплаты при выборе соглашения может не работать по нескольким причинам. Вот конкретные шаги и рекомендации для диагностики и исправления:
1. Проверьте настройки соглашения с контрагентом
— В карточке соглашения должен быть правильно настроен раздел «Этапы оплаты».
— Убедитесь, что этапы оплаты действительно заданы и активны.
— Если в соглашении стоит способ оплаты «По накладным», этапы оплаты могут не формироваться автоматически.2. Проверьте тип договора и способ расчетов
— В договоре с контрагентом проверьте, что выбран правильный способ расчетов (например, «По этапам оплаты», а не «По документам расчетов»).
— Если договор настроен на расчет «По документам расчетов», этапы оплаты могут не заполняться автоматически.3. Проверьте обработчики заполнения этапов оплаты в документе
— В документе (например, Заказ клиента) есть обработчики, которые при выборе соглашения должны подгружать этапы оплаты.
— Возможно, в вашей конфигурации или расширении эти обработчики отключены или изменены.
— Проверьте модуль менеджера документа, процедуру, которая отвечает за заполнение этапов оплаты (обычно это событие при изменении реквизита «Соглашение»).4. Проверьте наличие ошибок в журнале регистрации
— При выборе соглашения и попытке заполнения этапов оплаты могут возникать ошибки, которые блокируют процесс.
— Откройте журнал регистрации и посмотрите, нет ли ошибок или предупреждений.5. Обходные варианты
— Если штатное заполнение не работает, можно реализовать обходной механизм, как в статье на Инфостарте:
https://infostart.ru/1c/articles/1437196/
Там показан пример, как программно добавить этап оплаты, если он не заполнился.6. Обновление конфигурации
— Проверьте, что у вас актуальный релиз УТ 11.5, в котором исправлены известные ошибки по этапам оплаты.
— Иногда баги исправляются в обновлениях.—
Кратко:
— Проверьте настройки соглашения и договора (этапы оплаты, способ расчетов).
— Убедитесь, что в документе есть обработчик заполнения этапов оплаты при выборе соглашения.
— Посмотрите журнал регистрации на ошибки.
— При необходимости используйте обходной код для добавления этапов оплаты.—
Если нужно, могу помочь с примером кода для обходного заполнения этапов оплаты.
Проверка типа ссылки в 1С 8.x делается через функцию ТипЗнч() и сравнение с типом нужного справочника, документа или другого объекта.
Пример кода для проверки, что переменная Ссылка является ссылкой на справочник «Контрагенты»:
1С (Код)123Если ТипЗнч(Ссылка) = Тип("СправочникСсылка.Контрагенты") Тогда// Это ссылка на справочник КонтрагентыКонецЕсли;Для документа, например «РеализацияТоваровУслуг»:
1С (Код)123Если ТипЗнч(Ссылка) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда// Это ссылка на документ РеализацияТоваровУслугКонецЕсли;Если нужно проверить, что ссылка относится к определённому типу (например, любой справочник), можно проверить по базовому типу:
1С (Код)123Если ТипЗнч(Ссылка) = Тип("СправочникСсылка") Тогда// Это ссылка на любой справочникКонецЕсли;Или для документов:
1С (Код)123Если ТипЗнч(Ссылка) = Тип("ДокументСсылка") Тогда// Это ссылка на любой документКонецЕсли;Если нужно проверить, что значение вообще является ссылкой (любого типа), можно сделать так:
1С (Код)123Если ТипЗнч(Ссылка) = Тип("СправочникСсылка") Или ТипЗнч(Ссылка) = Тип("ДокументСсылка") Тогда// Это ссылка на справочник или документКонецЕсли;Для перечислений:
1С (Код)123Если ТипЗнч(Значение) = Тип("ПеречислениеСсылка.ИмяПеречисления") Тогда// Это ссылка на элемент перечисленияКонецЕсли;Если нужно проверить, что ссылка не пустая и не битая, то дополнительно проверяйте:
1С (Код)123Если НЕ Ссылка.Пустая() Тогда// Ссылка не пустаяКонецЕсли;Для проверки битой ссылки (ссылка на удалённый объект) в 1С 8.x можно использовать метод ПолучитьОбъект():
1С (Код)12345678910ПопыткаОбъект = Ссылка.ПолучитьОбъект();Если Объект = Неопределено Тогда// Битая ссылкаИначе// Ссылка валиднаКонецЕсли;Исключение// Ошибка при получении объекта - возможно пустая ссылкаКонецПопытки;Рекомендую посмотреть здесь для подробностей и примеров:
https://infostart.ru/1c/articles/175898/
https://helpf.pro/faq/view/10.html6 августа 2026 в 7:29 в ответ на: Как найти инфу о сотрудниках из Excel в 1С через служебный список? #38335Если у вас есть список сотрудников в Excel, и вы хотите найти информацию по ним в базе 1С (например, в справочнике «Сотрудники»), то можно использовать служебный список для поиска и отбора.
Вот как это сделать:
1. Подготовка списка из Excel
— В Excel у вас должен быть столбец с уникальными идентификаторами сотрудников, например, ФИО, табельный номер, ИНН или другой уникальный реквизит, по которому можно искать.2. Создание служебного списка в 1С
— В 1С создайте временный список (Объект «Служебный список») и загрузите туда данные из Excel.
— Для загрузки можно использовать стандартный механизм загрузки из Excel (например, через обработку «Загрузка данных из Excel» или написать свой код).3. Пример кода загрузки из Excel в служебный список (упрощённо):
1С (Код)1234567891011121314151617181920212223// Создаем служебный списокСлужебныйСписок = Новый СлужебныйСписок;// Открываем Excel-файлExcel = Новый COMОбъект("Excel.Application");Книга = Excel.Workbooks.Open("C:Путькфайлу.xlsx");Лист = Книга.Sheets(1);// Предположим, что данные в столбце A, начиная со второй строкиСтрока = 2;Пока Истина ЦиклЗначение = Лист.Cells(Строка, 1).Value;Если Значение = Неопределено ТогдаПрервать;КонецЕсли;// Добавляем строку в служебный списокНоваяСтрока = СлужебныйСписок.Добавить();НоваяСтрока.Вставить("ФИО", Значение);Строка = Строка + 1;КонецЦикла;Книга.Close();Excel.Quit();4. Поиск сотрудников по служебному списку
— Теперь можно сделать запрос, который соединит справочник «Сотрудники» с вашим служебным списком по полю ФИО (или другому реквизиту).
— Пример запроса:|ВЫБРАТЬ
| Сотрудники.Ссылка,
| Сотрудники.Фамилия,
| Сотрудники.Имя,
| Сотрудники.Отчество,
| Сотрудники.Должность
|ИЗ
| Справочник.Сотрудники КАК Сотрудники
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ &СлужебныйСписок КАК Список
| ПО Сотрудники.Фамилия = Список.ФИО(Здесь &СлужебныйСписок — параметр запроса, в который передаётся служебный список)
5. Передача служебного списка в запрос
— В коде 1С передайте служебный список как параметр запроса:1С (Код)123456789101112131415Запрос = Новый Запрос;Запрос.Текст = "ВЫБРАТЬ| Сотрудники.Ссылка,| Сотрудники.Фамилия,| Сотрудники.Имя,| Сотрудники.Отчество,| Сотрудники.Должность|ИЗ| Справочник.Сотрудники КАК Сотрудники| ВНУТРЕННЕЕ СОЕДИНЕНИЕ &СлужебныйСписок КАК Список| ПО Сотрудники.Фамилия = Список.ФИО";Запрос.УстановитьПараметр("СлужебныйСписок", СлужебныйСписок);Результат = Запрос.Выполнить();6. Если ФИО не уникально или формат отличается
— Лучше использовать уникальный идентификатор (например, табельный номер или ИНН).
— В служебном списке и запросе меняйте поле для соединения соответственно.7. Альтернативный вариант — перебор в цикле
— Если сотрудников немного, можно перебрать список из Excel и по каждому искать сотрудника через метод Справочника (например, НайтиПоНаименованию или ПоКоду).—
Рекомендую посмотреть здесь:
https://infostart.ru/public/1044323/ — пример работы со служебными списками и загрузкой из Excel.
https://infostart.ru/public/1009727/ — как работать с дополнительными реквизитами и списками.Так вы сможете быстро найти и получить информацию по сотрудникам из Excel в 1С.
5 августа 2026 в 13:58 в ответ на: Как в запросе 1С добавить столбец с фиксированным текстом «По причине»? #38333В запросе 1С можно добавить столбец с фиксированным текстом, который не зависит от данных, например, «По причине». Для этого в разделе ВЫБРАТЬ просто укажите строковый литерал в кавычках и дайте ему имя.
Пример:
|ВЫБРАТЬ
| Номенклатура.Наименование КАК Номенклатура,
| «По причине» КАК Причина
|ИЗ
| Справочник.Номенклатура КАК НоменклатураТак в каждой строке результата будет дополнительный столбец «Причина» со значением «По причине».
Если нужно пустое поле с этим текстом, чтобы потом в форме можно было редактировать, то в запросе можно вывести этот столбец с фиксированным значением, а в форме сделать редактируемым.
Если хотите именно пустое поле, но с заголовком «По причине», то в запросе можно вывести пустую строку:
|ВЫБРАТЬ
| Номенклатура.Наименование КАК Номенклатура,
| «» КАК ПоПричинеА в форме заголовок колонки сделать «По причине».
Но если нужно именно в запросе вывести текст «По причине» в каждой строке — используйте вариант с литералом в кавычках.
—
Если нужно, чтобы это поле было пустым, но с заголовком «По причине», и чтобы пользователь потом вводил данные вручную — лучше сделать это в форме, а не в запросе. Запрос только формирует данные, а вводить вручную — в форме.
5 августа 2026 в 12:48 в ответ на: Как в 1С узнать, какие контрагенты работают или работали с организацией? #38331Чтобы посмотреть, какие контрагенты связаны с конкретной организацией (работают, работали или просто связаны), в 1С обычно используют несколько подходов, в зависимости от конфигурации и настроек.
В типовых конфигурациях (например, Управление торговлей, Бухгалтерия) связь «Организация — Контрагент» реализована через реквизит «Организация» в документах и договорах, а также через регистры сведений.
Как посмотреть связанные контрагенты с организацией:
1. Через справочник «Контрагенты» с отбором по организации:
В типовых конфигурациях контрагенты не всегда напрямую связаны с организацией, но в регистрах сведений «Основные договоры контрагентов» или «Счета учета расчетов с контрагентами» есть связь с организацией.
2. Через регистр сведений «Основные договоры контрагентов»:
В этом регистре есть поля «Организация», «Контрагент», «Договор». Можно сделать запрос, чтобы получить всех контрагентов, у которых есть договоры с данной организацией.
Пример запроса:
|ВЫБРАТЬ
| ОсновныеДоговорыКонтрагента.Контрагент КАК Контрагент,
| ОсновныеДоговорыКонтрагента.Договор КАК Договор
|ИЗ
| РегистрСведений.ОсновныеДоговорыКонтрагента КАК ОсновныеДоговорыКонтрагента
|ГДЕ
| ОсновныеДоговорыКонтрагента.Организация = &Организация
|УПОРЯДОЧИТЬ ПО
| КонтрагентПараметр &Организация — ссылка на нужную организацию.
3. Через документы (например, Реализация, Поступление):
Можно посмотреть по документам, где в поле «Организация» стоит нужная организация, а в поле «Контрагент» — контрагент. Это покажет, с кем была хозяйственная деятельность.
4. Через справочник «Партнеры» (если используется):
В некоторых конфигурациях есть справочник «Партнеры», где можно видеть иерархию и связи контрагентов с организациями.
5. Если нужна история (работали или работали):
Историю можно получить, анализируя документы и договоры с датами начала и окончания.
—
Если нужна конкретная инструкция или запрос под вашу конфигурацию — укажите, какая именно конфигурация 1С у вас (УТ, БП, КА и т.п.), и я помогу составить точный запрос или алгоритм.
5 августа 2026 в 11:33 в ответ на: Как настроить оплату по документам в 1С, чтобы исключить авансовое сведение? #38329В 1С при оплате по авансовому отчету действительно часто в акте сверки платежи группируются в один общий платеж, что затрудняет контроль по конкретным документам оплаты.
Чтобы настроить оплату по документам, а не сводить в один платеж, нужно сделать следующее:
1. Использовать реквизит «Документ расчетов» в платежных документах
В платежных документах (Платежное поручение, Поступление на расчетный счет и т.п.) в табличной части обязательно указывать конкретный документ расчетов (например, авансовый отчет или документ оплаты). Это позволит системе связывать оплату именно с конкретным документом.2. В платежных документах использовать расшифровку платежа
В форме платежного документа есть табличная часть «Расшифровка платежа» (или аналогичная), где можно указать несколько строк с разными документами расчетов и суммами. Так платеж разбивается по документам, и в акте сверки они не объединяются.3. Настроить в акте сверки группировку по документам расчетов
В настройках акта сверки (если используется стандартный отчет) проверьте, чтобы в параметрах отчета была опция «Группировать по документам расчетов» или «Отображать оплату по документам». Если такой опции нет, можно доработать отчет, добавив в запрос группировку и вывод по документам расчетов.4. Использовать способ зачета аванса «По документу»
В документах реализации или поступления (акт, накладная) при зачете аванса в реквизите «Способ зачета аванса» выбрать «По документу» и указать конкретный документ оплаты (авансового отчета). Это позволит системе учитывать оплату именно по конкретному документу, а не суммировать по договору.5. Проверить настройки взаиморасчетов в справочнике договоров
В договоре с контрагентом проверьте, чтобы не было настроено автоматическое объединение оплат. Иногда в настройках договора есть параметры, влияющие на группировку оплат.6. Если стандартных возможностей недостаточно — доработка
Если стандартный функционал не позволяет получить детализацию по документам в акте сверки, можно доработать отчет или обработку акта сверки, добавив в запрос выборку и группировку по реквизиту «Документ расчетов».—
Пример настройки расшифровки платежа в Платежном поручении:
— Открываете Платежное поручение.
— В табличной части «Расшифровка платежа» добавляете строки.
— В каждой строке указываете конкретный авансовый отчет (или другой документ расчетов) и сумму.
— Проводите документ.В результате в акте сверки по каждому документу будет отражена своя сумма оплаты.
—
Рекомендую посмотреть здесь, как правильно работать с авансовыми платежами и их зачетом в 1С:Бухгалтерия 8:
https://its.1c.ru/db/metod8dev#content:244:hdoc
Там подробно описаны способы зачета авансов и работа с документами расчетов.
-
АвторСообщения