Как создать движения документа без использования конструктора движений 1c
Объекты системы с типом Документ могут совершать движения по регистрам; за алгоритмы этих движений отвечает обработка проведения. Разрабатывать алгоритмы помогает конструктор движений; он вызывается из объекта конфигурации по соответствующей кнопке:
В случае редактирования, можно выбрать регистр, движения по которому нужно откорректировать:
Зелеными галочками в окне Реквизитов документа отмечены реквизиты, которые совпадают по типу данных с реквизитами регистра, движение для которого настраивается.
По нажатии кнопки Ок, платформа сформирует в модуле документа обработку проведения, которая впоследствии будет вызываться в момент проведения документа:
Вопрос 04.14 экзамена 1С:Профессионал по платформе. Назовите инструмент визуального создания алгоритма проведения документа и основное место его вызова
- Конструктор движений. Основное место вызова через окно редактирования объекта, закладка "Движения", кнопка "Конструктор движений"
- Конструктор движений. Основное место вызова через главное меню "Конструкторы" / "Движения регистров. "
- Конструктор проведения. Основное место вызова через окно редактирования объекта, закладка "Движения", кнопка "Конструктор проведения"
- Конструктор движений. Основное место вызова через окно редактирования объекта, закладка "Проведение", кнопка "Конструктор движений"
- Инструмент визуального создания алгоритма проведения документов в системе отсутствует
Вопрос 04.15 экзамена 1С:Профессионал по платформе. Назовите основное назначение конструктора движений документа
- Конструктор движений облегчает задачу разработки процедуры, с помощью которой будут формироваться движения документа в регистрах учета
- Конструктор движений документа в системе отсутствует
- Конструктор движений облегчает задачу формирования движений, но только в регистрах накопления
- Конструктор движений облегчает задачу разработки структуры документа, исходя из структуры регистров учета
Правильный ответ первый. Конструктор движений позволяет создать обработку проведения, не разрабатывая при этом программный код вручную.
Вопрос 04.16 экзамена 1С:Профессионал по платформе. Можно ли произвести автозаполнение выражений и, если "да", то какими действиями?
- Да, можно. В элементе формы "Табличная часть" выбрать табличную часть "Состав" документа и нажать кнопку "Заполнить выражения"
- Нет, нельзя. Каждое выражение для поля-приемника необходимо определять "вручную"
- Да, можно. Оставить все настройки согласно рисунку и нажать кнопку "Заполнить выражения"
Правильный ответ первый. Сначала нужно обязательно выбрать исходную табчасть, это поле явно пустое.
Вопрос 04.17 экзамена 1С:Профессионал по платформе. Процедуру с каким именем и в каком контексте определяет конструктор движений документа?
- ОбработкаПроведения. Определяется в модуле объекта документ
- ОбработкаПроведения. Определяется в модуле формы документа
- ДвиженияДокумента. Определяется в модуле объекта документа
- ДвиженияДокумента. Определяется в модуле формы документа
Вопрос 04.18 экзамена 1С:Профессионал по платформе. Если процедура с именем "ОбработкаПроведения" уже определена в модуле документа, то возможно ли в этом случае использование конструктора движений?
- Да, но при этом система попросит подтверждение на замещение алгоритма проведения уже существующей процедуры "ОбработкаПроведения" новым
- Нет, сначала надо вручную удалить "старую" обработку проведения, а только потом вызывать конструктор
- Да, но система при этом, безусловно, удалит "старую" обработку проведения
- Да, система закомментирует "старую" обработку проведения и создаст "новую"
Правильный ответ первый, предупреждение выглядит так:
Вопрос 04.19 экзамена 1С:Профессионал по платформе. Можно ли значение ресурса "Количество" задать произвольным выражением?
- Да, можно, правильность написания формулы конструктор не проверяет
- Нет, нельзя, формулу можно заполнить только значениями, выделенными "галочками" в списке реквизитов документа
- Да, можно, но конструктор проверит правильность написания формул согласно списку реквизитов документа
- Нет, нельзя, формулу можно заполнить только значениями из списка реквизитов документа
Правильный ответ первый. Можно написать формулу, но синтаксического контроля нет.
В некоторых типовых конфигурациях фирмы 1С существует возможность ручной корректировки движений документа по регистрам. В конфигурации 1С: Бухгалтерия 8 для этого, при наличии соответствующих прав, нужно открыть движения документа и установить флаг “Ручная корректировка”. Однако, иногда возникает необходимость выполнить корректировку движений большого количества документов. В этом случае нам понадобится обработка, которая изменит движения документов без перепроведения.
Рассмотрим как изменить движения документа на примере конфигурации 1С: Бухгалтерия 8. Менять будем движения по регистру бухгалтерии “Хозрасчетный”. Пусть перед нами стоит задача заполнить суммы налогового учета по данным бухгалтерского. Предположим, что у нас уже есть обработка, которая выбирает необходимые нам документы и последовательно обрабатывает их с помощью описанной нами процедуры “ИзменитьДвиженияДокумента”. Посмотрим как должна выглядеть эта процедура.
Процедура ИзменитьДвиженияДокумента ( ДокументСсылка )// прочитаем набор записей регистра по документу
НаборЗаписей = РегистрыБухгалтерии . Хозрасчетный . СоздатьНаборЗаписей ( ) ;
НаборЗаписей . Отбор . Регистратор . Установить ( ДокументСсылка ) ;
НаборЗаписей . Прочитать ( ) ;
Если НаборЗаписей . Количество ( ) = 0 Тогда
Возврат ;
КонецЕсли ;
// переберем все записи набора и заполним суммы по налоговому учету
Для каждого Запись из НаборЗаписей Цикл
// перед изменением сумм проверяем ведется ли налоговый учет на выбранном счёте
Если Запись . СчетДт . НалоговыйУчет Тогда
Запись . СуммаНУДт = Запись . Сумма ;
КонецЕсли ;
Если Запись . СчетКт . НалоговыйУчет Тогда
Запись . СуммаНУКт = Запись . Сумма ;
КонецЕсли ;
КонецЦикла ;
// установим признак обмена данными
НаборЗаписей . ОбменДанными . Загрузка = Истина ;
НаборЗаписей . Записать ( ) ;
// установим признак ручной корректировки документа,
// предварительно установив признак обмена данными
ДокументОбъект = ДокументСсылка . ПолучитьОбъект ( ) ;
ДокументОбъект . ОбменДанными . Загрузка = Истина ;
ДокументОбъект . РучнаяКорректировка = Истина ;
ДокументОбъект . Записать ( ) ;
КонецПроцедуры
Хотелось бы отметить, что без проверки ведения налогового учета на счёте, при попытке записать набор, содержащий проводку с ненулевой суммой по счёту на котором не ведется налоговый учет, возникнет ошибка следующего содержания:
Запись не верна! Поле “Сумма (налоговый учет)” должно быть пустым! (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)
Режим обмена данными устанавливается следующими строками:
. . .НаборЗаписей . ОбменДанными . Загрузка = Истина ;
. . .
ДокументОбъект . ОбменДанными . Загрузка = Истина ;
. . .
Это необходимо для того, чтобы не выполнялся программный код, находящийся в обработчиках событий “ПередЗаписью” модуля набора записей регистра бухгалтерии “Хозрасчетный” и модуля корректируемого документа. В каждом из них (для типовых конфигураций) есть проверка следующего вида:
Если ОбменДанными . Загрузка ТогдаВозврат ;
КонецЕсли ;
Движения документа отредактированы вручную и не могут быть автоматически актуализированы
Статья найдена на просторах интернета
Кодак продает фотопленку, но рекламируют они не фотопленку. Они рекламируют память.
— Теодор Левит
Конструктор движений регистров предназначен для визуальной настройки правил заполнения движений документа по регистрам, настроенным в конфигурации. Результатом работы конструктора является создание предопределенной процедуры ОбработкаПроведения() в модуле редактируемого документа. Конструктор движений работает только для документов.
Конструктор можно вызвать двумя способами:
Внимание! Конструктор доступен только для тех документов, для которых перечислены зависимые регистры накопления и\или сведений.Описание конструктора
Сам конструктор состоит из одной единственной формы с тремя табличными полями и набором кнопок:
При выделении регистра в поле А происходит изменение списка реквизитов в поле В. Поля Б и В также взаимосвязаны: в списке реквизитов (поле Б) отображаются только те реквизиты, которые подходят для выбора в качестве заполнителя для выделенного реквизита в поле В (совпадают по имени и типу). Галочкой в поле Б помечаются те реквизиты документа, которые имеют тот же тип, что и реквизит, выделенный в поле В.
Примечательно то, что в значения в поле В можно вводить и вручную. Однако, конструктор не проверяет синтаксическую верность введенных формул. Кроме того, автоматическое заполнение не всегда работает корректно.
Результатом работы конструктора будет процедура ОбработкаПроведения() в модуле текущего объекта. Обратите внимание, что в процедуре присутствуют служебные комментарии конструктора. Таким образом конструктор отделяет свои изменения от кода, введенного вручную:
Внимание! Если Вы впервые вызываете конструктор, а процедура ОбработкаПроведения() уже есть в модуле объекта и содержит код, то по окончании работы конструктора она будет замещена. Все изменения, внесенные вручную могут быть утеряны!Смотреть на Youtube
Читайте также: