Реквизит документа + реквизит движения регистра + поле на типовой форме для ЕРП/УХ

26.10.26

Задачи пользователя - Адаптация типовых решений

Рецепт на реальном примере ЕРП/УХ (Управление холдингом/ERP 3.3): как расширением добавить документу новый реквизит, заполнять его же в движениях регистра накопления при проведении (включая случай, когда кроме него ничего не меняется, а ЕРП пропускает перезапись движений), и вывести поле на типовую форму без её правки. Со всеми платформенными граблями: почему реквизит движения нельзя добавить самим расширением в режиме совместимости 8.3.27, кто такой Регистратор расчетов и где искать исходный документ движения, и как собрать .cfe одним ibcmd с проверкой содержимого. Код открытый, ставится как обычное расширение.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Финансовая позиция
.cfe 32,21Kb
3 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Задача

Есть документ Приобретение услуг и прочих активов и регистр накопления Расчеты с поставщиками по срокам (ЕРПУХ 3.3, режим совместимости 8.3.27). Нужно:

  1. добавить в документ реквизит «Финансовая позиция» (СправочникСсылка.СтатьиДоходовИРасходов);
  2. при проведении значение этого реквизита зафиксировать в реквизит движения регистра;
  3. показать поле на типовой форме документа;
  4. внести минимально необходимые изменения типовой конфигурации.

Аналогичный механизм применяли в проектах доработки типовых конфигураций для заказчика. Показываю, сколько из этого можно забрать в расширение.
 

Ловушка № 1: реквизит движения нельзя добавить расширением

Платформа запрещает добавлять реквизиты (а также измерения и ресурсы) к заимствованным регистрам — вплоть до режима совместимости 8.5.1 включительно (проверено на платформе 8.5.1: «Добавление дочерних объектов этого типа к заимствованным в расширениях недопустимо в режиме совместимости … и ниже»).

Решение: реквизит движения добавляется в конфигурацию. Расширение же заимствует регистр только ради модуля набора записей.

Заполнение при проведении: модуль набора записей

&После("ПередЗаписью")
Процедура тест_ПередЗаписью(Отказ, Замещение)
	Если ОбменДанными.Загрузка ИЛИ Отказ Тогда
		Возврат;
	КонецЕсли;
	тест_ЗаполнитьФинансовуюПозицию(ЭтотОбъект);
КонецПроцедуры

Ловушка № 2: регистратор — не тот документ

У регистра взаиморасчетов ЕРП регистратор — Документ.РегистраторРасчетов (движения пишутся через ОперативныеВзаиморасчетыСервер.ЗаписатьПорционно при проведении). Исходный документ лежит в реквизите движения ДокументРегистратор — проверять и читать нужно по нему, а не по системному Регистратор:

ТипДокумента = Тип("ДокументСсылка.ПриобретениеУслугПрочихАктивов");
Для Каждого Запись Из НаборЗаписей Цикл
	Если ТипЗнч(Запись.ДокументРегистратор) = ТипДокумента Тогда ...

Не зпабываем использовать БСП - значения реквизитов исходных документов читаем одним пакетным вызовом — ОбщегоНазначения.ЗначениеРеквизитаОбъектов(РасчетныеДокументы, "тест_ФинансоваяПозиция") возвращает Соответствие.

Ловушка № 3: изменился только наш реквизит — движения не переписываются

Типовое проведение ЕРП пишет движения взаиморасчетов только при наличии изменений: ВзаиморасчетыПроведение.ПослеЗаписиДвиженийДокумента выходит, если пуста таблица изменений. Наш реквизит в типовое сравнение не входит - набор не записывается - перехват не срабатывает.

Решение: в модуле объекта документа расширения &После("ОбработкаПроведения") сверяем значения и при расхождении перезаписываем наборы сами (запрос находит регистраторов с расходящимся значением; правятся только строки своего документа, чужие записи в том же наборе не трогаются).

Поле на типовой форме

Форму заимствуем в расширение, а элемент добавляем программно в &После("ПриСозданииНаСервере") — разметку формы не правим, при обнованиях типовой формы меньше конфликтов:

&НаСервере
Процедура тест_ДобавитьПолеФинансовойПозиции()
	Группа = Элементы.Найти("ГруппаПараметрыЛево");
	Если Группа = Неопределено Тогда Возврат; КонецЕсли;
	Если Элементы.Найти("тест_ФинансоваяПозиция") <> Неопределено Тогда Возврат; КонецЕсли;
	НовоеПоле = Элементы.Добавить("тест_ФинансоваяПозиция", Тип("ПолеФормы"), Группа);
	НовоеПоле.ПутьКДанным = "Объект.тест_ФинансоваяПозиция";
	НовоеПоле.Вид = ВидПоляФормы.ПолеВвода;
	НовоеПоле.УстановитьДействие("ПриИзменении", "тест_ФинансоваяПозицияПриИзменении");
КонецПроцедуры

В ПриИзменении явно взводим Модифицированность = Истина — для программно добавленного поля автоматика не гарантируется, и без этого можно потерять изменение при закрытии.

Две детали, которые всплывают в обсуждениях программного создания элементов (см. ссылки в конце):

  • Сначала ПутьКДанным, потом Вид — при установке пути к данным платформа пересчитывает вид элемента по типу данных, поэтому явное присваивание вида должно идти последним. Для СправочникСсылка авто-вид и так «поле ввода» (потому оба порядка работают), но правильный порядок делает приём переносимым на другие типы.
  • ИзменитьРеквизиты не понадобился вовсе: поле привязано к реквизиту документа, а не к реквизиту формы — источник данных уже существует. Если бы реквизит был формовый, его пришлось бы создавать через ИзменитьРеквизиты, и по возможности одним пакетным вызовом (добавлять/удалять реквизиты формы по одному — ресурсоёмко).

Почему всё-таки с заимствованием формы, а не через МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере (так иногда советуют для ЕРП, чтобы не тянуть форму в расширение): в ЕРПУХ 3.3.4.7 форма документа вызывает этот модуль только в событиях записи (ПередЗаписьюНаСервере, ПослеЗаписиНаСервере, клиентский ПослеЗаписи), а при создании формы хука нет — проверено по исходному модулю формы. И второе: УстановитьДействие назначает обработчиком только процедуру модуля формы — наш клиентский ПриИзменении живёт именно там, без своей формы его некуда повесить.

Сборка .cfe без конфигуратора: ibcmd 8.5.1

  • Заглушка базы строится из XML-дампа конфигурации: ibcmd infobase create --import=<дамп> --apply.
  • Расширение: config import --extension - config save --extension - готовый .cfe.
  • Почему не ibcmd 8.3.27: разметка родительской формы содержит значение DontBlock, которое 8.3.27 не разбирает; минимальная заглушка тоже не срабатывает — заимствованная форма ссылается на команды Post/Write/PostAndClose и реквизиты родительской разметки. Поэтому 8.5.1.

Установка

  1. В конфигурации должен быть реквизит тест_ФинансоваяПозиция (СправочникСсылка.СтатьиДоходовИРасходов) у регистра РасчетыСПоставщикамиПоСрокам.
  2. Конфигуратор - Расширения - Создать пустое расширение - Загрузить конфигурацию из файла тест_ФинансоваяПозиция.cfe, применить.
  3. Проверка: заполнить фин. позицию в документе, провести; в движениях регистра у записей документа реквизит заполнен тем же значением; изменить только фин. позицию и перепровести — значение в движениях обновилось.

Проверено на

  • УправлениеХолдингомERP 3.3.4.7 (режим совместимости 8.3.27), платформа 8.5.1.

 

Похожие публикации:

 

Ключевое отличие: я привел сквозной рецепт «реквизит документа - форма - реквизит движения - проведение - сборка».

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.6.2.59

Вступайте в нашу телеграмм-группу Инфостарт

расширение ЕРПУХ регистр реквизит движения регистра проведение документа модуль набора записей РегистраторРасчетов взаиморасчеты РасчетыСПоставщикамиПоСрокам БСП ЗначениеРеквизитаОбъектов ibcmd сборка cfe

См. также

Разработка Адаптация типовых решений Производство готовой продукции (работ, услуг) Розничная торговля 1С:Управление торговлей 10 Россия Платные (руб)

Доработка для 1С:Управление торговлей 10.3 (релиз 10.3.88.3) добавляет поддержку маркировки новых категорий товаров согласно постановлениям Правительства РФ 2025–2026 гг. Конфигурация УТ 10.3 снята с поддержки — новые маркируемые категории в типовую поставку больше не попадают. Доработка закрывает этот пробел: новые виды номенклатуры, обмен с ГИС МТ «Честный Знак». Поставляется в виде файла .cf

14640 руб.

23.04.2026    5343    49    13    

45

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Решение позволяет автоматически заполнять отдельные реквизиты загружаемых банковских документов, основываясь на известных значениях реквизитов и тексте назначения платежа. Простая настройка, широкие возможности анализа назначения платежа без написания кода и сложных шаблонов.

12200 руб.

17.06.2025    5331    16    0    

16

Печатные формы Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

6000 руб.

07.02.2023    14498    123    25    

79

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Расширение для УНФ, чтобы автоматически отменять старые резервы и не мешалть эффективно продавать.

9150 руб.

02.08.2023    8970    27    5    

42

Адаптация типовых решений 1С 8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Расширение, которое в форму списка и форму выбора справочника «Номенклатура» добавляет табличную часть в виде дерева, в которую выводится информация об остатках и доступности выбранной номенклатурной позиции.

6710 руб.

20.04.2026    971    1    0    

3

Адаптация типовых решений БСП (Библиотека стандартных подсистем) Кадровый учет ЭДО и ОФД 1C:Бухгалтерия 1С:Зарплата и кадры 7.7 1C:ERP 1С:ЗУП 1С:УТ 1С:ДО Платные (руб)

Наше расширение 1С Госключ обеспечивает интеграцию любой конфигурации 1С на базе БСП с мобильным приложением «Госключ», позволяя сотрудникам подписывать кадровые документы (КЭДО) и документы материальной ответственности (МОЛ, ПБ) усиленной электронной подписью прямо со смартфона. Решение автоматизирует формирование и отправку документов на подпись, отслеживает статусы подписания и хранит подписанные файлы непосредственно в базе 1С

25000 руб.

06.03.2026    2759    4    0    

5

Адаптация типовых решений 1С 8.3 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Беларусь Россия Платные (руб)

Расширение "Дополнительные документы" предназначено для создания дополнительных документов различного назначения, как форм для внесения данных так и печатных форм в расширяемой конфигурации пользовательскими средствами, без работы в конфигураторе и внесения изменений в структуру данных. Тестировалось для "1С:БП", "1С:УНФ","1С:КА"

21859 руб.

29.12.2025    2162    1    8    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. smielka 270 26.10.26 11:00 Сейчас в теме
Очень интересное решение. Спасибо автору за такое подробное описание. Буду учитывать в своей работе.
2. VikSan 26.10.26 11:41 Сейчас в теме
Полезный "рецепт", спасибо автору за публикацию.
3. r-kaygorodtsev 17 26.10.26 13:14 Сейчас в теме
Сам несколько раз натыкался на эти "нюансы" 1С Преприятия!
Для отправки сообщения требуется регистрация/авторизация