helpf.pro
Регистрация
 +1 
Распечатать

1С 8.x : Как сформировать сторно-запись регистра расчета, Метод «ПолучитьДополнение()

Сторно-записи, «прикрывающие» фактический период действия вводимой записи с более поздним периодом регистрации, могут быть сформированы вручную стандартными методами формирования записей регистра расчета. В этом случае разработчик должен самостоятельно предусмотреть алгоритм, по которому будут сформированы сторно-записи, исходя из первоначального набора записей. Это достаточно сложный путь, предполагающий самостоятельный анализ взаимодействия периодов действия конкурирующих записей.

Вместо формирования собственных алгоритмов можно воспользоваться методом ПолучитьДополнение() объекта РегистрРасчетаНаборЗаписей. Суть его состоит в том, что система самостоятельно анализирует возможные конфликты формируемого набора записей с записями, имеющими более ранний период регистрации. Если обнаруживается пересечение периодов действия с конкурирующими записями, на каждое такое пересечение система предложит сформировать сторно-запись, которая позволит вводимому набору записей сохранить фактический период действия. При этом система укажет, по каким видам расчета необходимо ввести сторно-записи и какой период действия они должны иметь.

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

В приведенном примере для набора записей, состоящего из одной записи о больничном, метод ПолучитьДополнение() вернет таблицу следующего вида:
Период регистрации Вид расчета Период действия … Период регистрации сторно Период действия начало сторно Период действия конец сторно
01.03.2010 Дежурство 01.03.2010 01.04.2010 15.03.2010 22.03.2010
Полученная таблица позволяет ввести необходимые сторно-записи без дополнительных вычислений. Ниже приведен текст модуля, в котором используется метод ПолучитьДополнение() и формируются сторно-записи в регистре расчета:

Код 1C v 8.х
 // Получить набор записей текущего документа.
НаборЗаписей = РегистрыРасчета.ОсновныеНачисленияРегл.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Ссылка, Истина); НаборЗаписей.Прочитать();

// Получить таблицу сторно-записей для набора записей текущего документа. ТаблицаСторно = НаборЗаписей.ПолучитьДополнение();

// Сформировать сторно-записи в регистре расчета
Для Каждого СтрокаСторно из ТаблицаСторно Цикл
Запись = Движения.ОсновныеНачисленияРегл.Добавить(); Запись.ВидРасчета = СтрокаСторно.ВидРасчета; Запись.ПериодРегистрации = СтрокаСторно.ПериодРегистрацииСторно;
Запись.ПериодДействияНачало = СтрокаСторно.ПериодДействияНачалоСторно; Запись.ПериодДействияКонец = СтрокаСторно.ПериодДействияКонецСторно;

// Заполнить измерения и реквизиты записи
// ...

Запись.Сторно = Истина; КонецЦикла
;

Таким образом, сторно-записи имеют те же значения полей, что и исходные записи, за исключением периода регистрации и периода действия. Сторно-записи отличаются от обычных записей значением Истина в предопределенном поле Сторно.
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 5924
 +1 
Распечатать
Возможно, вас также заинтересует
ZIP-архив Создание 0
Для того чтобы записать файлы в ZIP-архив необходимо выполнить несколько простых действий: * Создать архив с необходимыми параметрами, в который будут помещаться файлы. * Поместить в архив необходимые файлы. * Записать...
В чем разница между ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ в языке запросов 1С 2
Цитата из справки 1С: " По умолчанию при объединении запросов полностью одинаковые строки в результате запроса, сформированные РАЗНЫМИ запросами, заменяются одной . Если требуется, чтобы были оставлены разные...
Внешние источники данных 0
Почему данная возможность вызывает такой интерес? Любой человек, который программировал в 1С при этом достаточно неплохо знаком с SQL и хотя бы в общих чертах знаком с архитектурой и принципами разработки других...
Выбрать документы за период, установить значение в реквизит табличной части и провести документ 0
// Необходимо выбрать документы за период по ответственному // В каждом документе, где в первой строке табличного поля не заполнен реквизит Статья // заполнить, и провести документ Запрос = Новый Запрос; Запрос.Текст = ...
Вывод результата запроса в табличный документ 0
//Вых - ЭлементыФормы.РезультатТабличныйДокумент, //ТЗЗ - Результат выполнения запроса Процедура ПечатьРезвТаб(Вых,ТЗЗ) Экспорт КоличествоКолонок = ТЗЗ.Колонки.Количество(); Выборка =...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.