Top.Mail.Ru
Заказать консультацию
специалиста 1С
Отправить заявку

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

Разбор типового механизма проведения

Беркутов Михаил Посмотреть все статьи >> Программист 1С франчайзинговой сети "ИнфоСофт".
25.05.2023
3094
Время прочтения - 5 мин.
Заказать консультацию

В курсе "1С за 21 день" с проведением документов знакомят при помощи Конструктора движений и небольшого редактирования движений. Выглядит это примерно так:

1.png

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

2.png

Сама обработка проведения выглядит примерно следующим образом. Для примера взят документ Регистрация Транспортных Средств.

3.jpg

К типовой схеме проведения относятся процедуры:

  1. ИнициализироватьДополнительныеСвойстваДляПроведения;

  2. ИнициализироватьДанныеДокумента;

  3. ПодготовитьНаборыЗаписейКРегистрацииДвижений;

  4. ЗагрузитьТаблицыДвижений;

  5. ЗаписатьНаборыЗаписей;

  6. ОчиститьДополнительныеСвойстваДляПроведения.

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


1) Инициализация Дополнительных свойств для проведения

Вызывается процедура ИнициализироватьДополнительныеСвойстваДляПроведения() общего модуля ПроведениеСервер. В процедуру, кроме ссылки и режима проведения, передаются ДополнительныеСвойства.

Как дополнительные свойства передаются:

"ТаблицыДляДвижений" - в него будут записываться таблицы, которые будут загружаться в регистр сведений, о нем пойдет речь пойдет далее;

"ДляПроведения" - будут содержаться свойства и реквизиты документы, используемые для проведения: "СтрукутраВременныеТаблицы" - записывается МенеджерВременныхТаблиц, "Режим проведения" - режим проведения нашего документа, "МетаданныеДокумента" - метаданные документа и "Ссылка" - ссылка на текущий документ.


2) Инициализация Данных Документа

4.jpg

 

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

 

3) Подготовка наборов записей документа к записи движений

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

Например, документ реализации формирует движения по регистру «РасчетыСКлиентамиПоДокументам», но не в момент проведения, а в дальнейшем при помощи регламентного задания. Следовательно, регистр «РасчетыСКлиентамиПоДокументам» будет помещен в исключаемые и флагу записи останется присвоенное значение «Ложь».


4) Загрузить Таблицы Движений

5.png

 

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

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

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

5) Записать наборы записей

6.jpg

 

Здесь происходит запись движений документа, а также процедура формирует дополнительные параметры, которые будут доступны в модуле набора записей регистра (Подготовка к процедуре контроля).


6) Очистка дополнительных свойств для проведения

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


Данная статья наиболее актуальна относительно ERP 2 и УТ 11. Механизм проведения показан наиболее простой, он может не соответствовать другим конфигурациям. Например, ЗУП со стеком вызовов в 15 и более процедур. Теперь рассмотрим контроль проведения по "новой методике проведения". Выполняется он между шагами 5 и 6.

7.png


Как мы видим, здесь идет обращение к общему модулю «Проведение документов». В нем выполняется проведение документов с теми же шагами, что были описаны выше, но нас интересует контроль. Первым шагом – создается менеджер временных таблиц для контроля, в котором собираются данные регистров для контроля.

8.png


Далее будет выполняться контроль проведения. Предлагаю рассмотреть контроль проведения на примере того же документа реализации товара. Начинается он с события "ЗаписатьДвиженияСКонтролем". Здесь собираются необходимые для контроля данные документа (сторнируемого или нет) и устанавливаются дополнительные свойства для контроля.

9.png

 

После всех шагов идет проверка на то, имеются ли изменения в регистре, после чего и происходит контроль в процедуре "ВыполнитьКонтрольРезультатовПроведения".

10.png

 

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


Заказать консультацию специалиста 1С
Оставьте заявку и наши эксперты проконсультируют вас по данной статье.
Отправить заявку

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

Рассказать друзьям
Для разработчиков 1С
Вам может быть интересно: