Доработка документа для формирования проводок в регламентированном учете ERP

17.12.21

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

Статья о том, как включить разработанный документ в подсистему формирования проводок в конфигурации ERP

Файлы

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

Наименование Скачано Купить файл
Доработка документа для формирования проводок в регламентированном учете ERP:
.cfe 179,05Kb
21 2 500 руб. Купить

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

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

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

Ранее в статье я описывал, как включить документ в основные подсистемы БСП на примере ERP, а также сделать формирование движений через механизмы ERP.

Но не затронул такой механизм, как формирование проводок через регистры сведений "Отражение документов в регламентированном учете" и регистре Хозрасчетный соответственно.

Есть разработанный документ, в моем случае "РасшСт_ДополнительныйРасходТоваров". Он уже делает движения по другим регистрам, поэтому мне не нужно для него прописывать процедуры формирования движений в модуле менеджера.

Напомню, что для этого используется подсистема формирования движений.


Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	
	ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

 

1. Документ должен являться регистратором следующих регистров

Регистр сведений ОтражениеДокументовВРеглУчете

Регистр сведений ОтражениеДокументовВМеждународномУчете

Регистр бухгалтерии Хозрасчетный

Соответственно добавляем их в расширение и в документ "РасшСт_ДополнительныйРасходТоваров" добавляю движения по этим регистрам.

2. Добавляем в модуль регистра бухгалтерии Хозрасчетный дополнительное условие и ключ.


&Перед("ПередЗаписью")
Процедура РасшСт_ПередЗаписью(Отказ, Замещение)
	
	Если ТипЗнч(Отбор.Регистратор.Значение) = Тип("ДокументСсылка.РасшСт_ДополнительныйРасходТоваров") Тогда
		ДополнительныеСвойства.Вставить("НеОтражатьВБюджетировании", Истина);
	КонецЕсли;
	
КонецПроцедуры

Это необходимо, чтобы отключить проведение документа по подсистеме бюджетирования. Есть более сложный вариант, путем добавления документа регистратором регистра накопления "ФактическиеДанныеБюджетирования" и еще кучей мелких доработок, но представленный выше вариант проще.

3. Добавляем в расширение обработку "ОтражениеДокументовВРеглУчете" и две её формы "ПроводкиРегламентированногоУчета" и "ПроводкиРегламентированногоУчетаЧтение".

 

 

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

 

 

4. Добавить в форму документа команду формирования проводок

 

Описание команды  
Имя ПроводкиРеглУчета
Заголовок Проводки регламентированного учета
Действие ПроводкиРеглУчета
Картинка ЖурналПроводок (добавить в расширение из типовой конфигурации)

 

И выводим эту команду в командную панель

 

 

В модуле формы добавляем обработчик команды

&НаКлиенте
Процедура ПроводкиРеглУчета(Команда)
	
	Отбор = Новый Структура("Регистратор", Объект.Ссылка);
	ПараметрыФормы = Новый Структура("Отбор", Отбор);
	
	Если ЕстьПравоРучнойКорректировкиПроводок() Тогда
		ИмяФормыПроводок = "Обработка.ОтражениеДокументовВРеглУчете.Форма.ПроводкиРегламентированногоУчета";
	Иначе
		ИмяФормыПроводок = "Обработка.ОтражениеДокументовВРеглУчете.Форма.ПроводкиРегламентированногоУчетаЧтение";
	КонецЕсли;
	
	ОткрытьФорму(ИмяФормыПроводок, ПараметрыФормы, ЭтотОбъект,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
		
КонецПроцедуры

&НаСервере
Функция ЕстьПравоРучнойКорректировкиПроводок()
	
	Возврат Пользователи.РолиДоступны("ПравоРучнойКорректировкиПроводок");
	
КонецФункции

 

5. Перейдем к модификации модуля менеджера документа.

5.1 В процедуру ЗарегистрироватьУчетныеМеханизмы добавить учетный механизм по регл. учету.

	МеханизмыДокумента.Добавить("РегламентированныйУчет");

 

5.2 В модуле менеджера модифицируем процедуру "ДанныеДокументаДляПроведения". 

необходимо добавить текст запроса для формирования таблицы отражения в регл. учете.

		ТекстЗапросаТаблицаОтражениеДокументовВРеглУчете(ТекстыЗапроса, Регистры);
 
Процедура ТекстЗапросаТаблицаОтражениеДокументовВРеглУчете(ТекстыЗапроса, Регистры)
	
	ИмяРегистра = "ОтражениеДокументовВРеглУчете";
	
	ТекстЗапроса =
	"ВЫБРАТЬ
	|	&Период КАК Период,
	|	&Организация КАК Организация,
	|	НАЧАЛОПЕРИОДА(&Период, ДЕНЬ) КАК ДатаОтражения";
	
	ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
	
КонецПроцедуры

 

Добавить процедуру формирования непосредственно проводок.


Функция ТекстОтраженияВРеглУчете() Экспорт
	
	ТекстЗапроса = "
	|ВЫБРАТЬ
	|
	|	Операция.Ссылка КАК Ссылка,
	|	Операция.Дата КАК Период,
	|	Операция.Организация КАК Организация,
	|	НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
	|
	|	ЕСТЬNULL(Суммы.СуммаБезНДСРегл, 0) КАК Сумма,
	|	0 КАК СуммаУУ,
	|
	|	НЕОПРЕДЕЛЕНО КАК ВидСчетаДт,
	|	НЕОПРЕДЕЛЕНО КАК АналитикаУчетаДт,
	|	НЕОПРЕДЕЛЕНО КАК МестоУчетаДт,
	|
	|	ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаДт,
	|	Операция.Подразделение КАК ПодразделениеДт,
	|	НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельностиДт,
	|
	|	ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТМЦнаскладах) КАК СчетДт,
	|	Строки.Номенклатура КАК СубконтоДт1,
	|	НЕОПРЕДЕЛЕНО КАК СубконтоДт2,
	|	НЕОПРЕДЕЛЕНО КАК СубконтоДт3,
	|
	|	0 КАК ВалютнаяСуммаДт,
	|	Строки.Количество КАК КоличествоДт,
	|	0 КАК СуммаНУДт,
	|	0 КАК СуммаПРДт,
	|	0 КАК СуммаВРДт,
	|
	|	НЕОПРЕДЕЛЕНО КАК ВидСчетаКт,
	|	НЕОПРЕДЕЛЕНО КАК АналитикаУчетаКт,
	|	НЕОПРЕДЕЛЕНО КАК МестоУчетаКт,
	|
	|	ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаКт,
	|	Операция.Подразделение КАК ПодразделениеКт,
	|	НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельностиКт,
	|
	|	ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) КАК СчетКт,
	|	НЕОПРЕДЕЛЕНО КАК СубконтоКт1,
	|	НЕОПРЕДЕЛЕНО КАК СубконтоКт2,
	|	НЕОПРЕДЕЛЕНО КАК СубконтоКт3,
	|
	|	0 КАК ВалютнаяСуммаКт,
	|	Строки.Количество КАК КоличествоКт,
	|	0 КАК СуммаНУКт,
	|	0 КАК СуммаПРКт,
	|	0 КАК СуммаВРКт,
	|	""Пример формирования проводки"" КАК Содержание
	|
	|ИЗ
	|	ДокументыКОтражению КАК ДокументыКОтражению
	|	
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		Документ.РасшСт_ДополнительныйРасходТоваров КАК Операция
	|	ПО
	|		ДокументыКОтражению.Ссылка = Операция.Ссылка
	|	
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		Документ.РасшСт_ДополнительныйРасходТоваров.Товары КАК Строки
	|	ПО 
	|		(Строки.Ссылка = Операция.Ссылка)
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		РегистрСведений.СуммыДокументовВВалютахУчета КАК Суммы
	|	ПО 
	|		Строки.Ссылка = Суммы.Регистратор 
	|		И Суммы.СуммаБезНДСРегл <> 0
	|";

	ТекстыОтражения = Новый Массив;
	ТекстыОтражения.Добавить(ТекстЗапроса);
	
	Возврат СтрСоединить(ТекстыОтражения, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
	
КонецФункции

 

Собственно этих доработок достаточно, чтобы базово прописать для документа механизм формирования проводок.

Как это работает. Мы проводим документ. У нас регистрируется запись, что документ необходимо отразить в регл. учете.

 

 

Далее мы нажимаем "Отразить в регл. учете" и у нас формируются проводки.

 

 

Но тут уже работают типовые алгоритмы и подчиняются типовым правилам формирования проводок. В том смысле, что доступна ручная корректировка проводок или работает автоматическое формирование проводок.

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

Как вы видите, в функции ТекстОтраженияВРеглУчете можно собрать произвольный запрос для формирования проводок на основе  не только документа.

С каждый релизом платформы, в расширениях появляется все больше возможностей. Возможно в свежих версиях платформы (>=8.3.20), не обязательно добавлять команду формирования проводок в документ, а будет достаточно расширить тип типовой команды.

Писалось и тестировалось на релизе 1С:ERP Управление предприятием 2 (2.5.7.201), платформа 8.3.20.1613.

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

Отражение документа в регламентированном учете разработка функционала ERP регламентированный учет проводки хозрасчетный

См. также

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

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

36600 руб.

28.08.2025    5174    2    2    

5

Адаптация типовых решений 1С:Предприятие 8 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

32330 руб.

29.06.2023    10813    31    15    

40

Печатные формы Адаптация типовых решений Бухгалтер Пользователь 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, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

5084 руб.

07.02.2023    11501    108    20    

65

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

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

21859 руб.

29.12.2025    476    1    6    

2

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

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

9760 руб.

17.06.2025    2490    6    0    

6

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

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

9150 руб.

02.08.2023    7296    24    5    

40

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

Расширение для вывода информации об остатках и ценах номенклатуры в форме списка и выбора номенклатуры. (УТ 11, КА 2, ERP). Позволяет получать информацию о ценах, остатках и доступности в разрезе складов и характеристик номенклатуры, информацию по документам резерва.

7930 руб.

16.10.2025    707    1    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. glek 119 17.12.21 13:29 Сейчас в теме
Хорошая статья, плюс заслуженный. Только это... может я отстал, но разве в УТ формируются проводки?
2. maraty 494 17.12.21 13:56 Сейчас в теме
(1)
Хорошая статья, плюс заслуженный. Только это... может я отстал, но разве в УТ формируются проводки?

Вот тут наверное я переборщил :) Сама подсистема формирования движений идентична, а вот проводок действительно не должно быть. Спасибо, исправлю.
3. Legavaz 709 07.01.22 09:25 Сейчас в теме
Марат, большое спасибо, за первую и вторую статью! Сэкономил много времени на изучение
4. user811769 17 22.02.22 14:46 Сейчас в теме
Спасибо, хорошая статья!

Сегодня решала аналогичную задачу, на вашу статью наткнулась уже после завершения своей работы)

Отмечу два момента:

1) при доработке конфигурации не через расширение, чтобы избежать изменения настроек поддержки, я скопировала команду "ПроводкиРеглУчета" из обработки "ОтражениеДокументовВРеглУчете" и добавила в свой документ (вместо пунктов 3 и 4).

2) мне потребовалось изменить состав плана обмена ОбновлениеИнформационнойБазы и доработать РеглУчетВыборкиСерверПовтИсп.ИспользуемыеТаблицыДляОтраженияТипа(), чтобы обойти ошибку при выполнении РеглУчетПроведениеСервер.ПроверитьБлокировкуВходящихДанных(). У вас такой ошибки не было?
8. andrey_sag 59 17.08.23 09:20 Сейчас в теме
(4) Я решил тоже добавить:
В план обмена ОбновлениеИнформационнойБазы добавил свой документ (Авторегистрация Запретить)
В Функцию РеглУчетВыборкиСерверПовтИсп.ИспользуемыеТаблицыДляОтраженияТипа()
добавил свой документ:
ТаблицыДокумента = Новый Массив;
ТаблицыДокумента.Добавить("Документ.МойДок");
ТаблицыТиповДокументов.Вставить("МойДок", ТаблицыДокумента);

Пусть будет для подстраховки. Бывают же ситуации, что отложенные задания еще не отработаны, а тыкать по отражению проводок надо.
user1855722; +1 Ответить
5. maraty 494 22.02.22 15:45 Сейчас в теме
(4) Если посмотреть процедуру РеглУчетПроведениеСервер.ПроверитьБлокировкуВходящихДанных(), то в ней есть условие
Если ПолучитьФункциональнуюОпцию("ОтложенноеОбновлениеЗавершеноУспешно") Тогда
Возврат; // обновление ИБ завершено полностью
КонецЕсли;

У вас не завершились отложенные обработчики обновления.
Korolev; user811769; +2 Ответить
6. Biilsun 13.05.22 10:26 Сейчас в теме
Спасибо за статью, в версии 2.5.8.179 , как понял нужно и в регистр сведений "ОтражениеДокументовВМеждународномУчете" добавлять документ в качестве регистратора. так как при проведении происходит блокировка по данному регистру в независимости используется международный учет или нет.
на данный кусок кода наткнулся в функции "РеглУчетПроведениеСервер.ВыполнитьОтражение"

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ОтражениеДокументовВРеглУчете.НаборЗаписей");
ЭлементБлокировки.УстановитьЗначение("Регистратор", ВыборкаСтатусов.Ссылка);
//++ НЕ УТКА
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ОтражениеДокументовВМеждународномУчете.НаборЗаписей");
ЭлементБлокировки.УстановитьЗначение("Регистратор", ВыборкаСтатусов.Ссылка);
//-- НЕ УТКА
ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Хозрасчетный.НаборЗаписей");
ЭлементБлокировки.УстановитьЗначение("Регистратор", ВыборкаСтатусов.Ссылка);

Блокировка.Заблокировать();
Nfyxbr2013; user811769; andrey_sag; +3 Ответить
7. andrey_sag 59 09.08.23 06:41 Сейчас в теме
В ЕРП 2.5.8. Требуется добавить Функцию ТекстЗапросаВТОтраженияВРеглУчете()

Достаточно:

Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт

Возврат "";

КонецФункции
user811769; user1855722; +2 Ответить
9. Nfyxbr2013 23.11.23 01:33 Сейчас в теме
Коллеги, доброго времени суток!:)

После добавления реквизита формы "Документ" у обработки в расширение и расширения его типа для нашего документа при нажатии на кнопку формирования движения по регистру бухгалтерии с формы текущего документа, то есть выведенная команда на форму документа, вываливается ошибка с содержанием, значение не является значением объектного типа Пустая(). То есть получается расширенная команда на наш документ не воспроизводится при клике на форму для открытия формы обработки по формированию движений по регистру бухгалтерии. Как подправить?
10. VIA_1C 74 08.05.24 14:47 Сейчас в теме
Спасибо за статью, не пришлось самому выполнять изыскания ))
11. cdiamond 236 11.12.24 08:03 Сейчас в теме
Для тех кто делает задачку по допиливанию проводок на финальном этапе:
РеглУчетПроведениеСервер.СформироватьХозрасчетный
здесь в ТаблицаПроводок уже полностью заполненные данные с номерами счетов и субконто, и здесь же производится непосредственная запись в регистр бухгалтерии
12. vanel_444 19.11.25 11:56 Сейчас в теме
можете помочь?
Прикрепленные файлы:
Для отправки сообщения требуется регистрация/авторизация