1с корректировка регистров документ создать программно
Большинство документов в типовых конфигурациях 1С формируют движения по нескольким регистрам, что, в свою очередь, может привести к проблемам с изменением (отменой или сторнированием) этих записей. Если пользователь вручную откорректирует данные одной таблицы и не тронет другую, это, в дальнейшем, повлечет за собой ошибки при формировании отчетов и создании других документов. Именно поэтому специалисты 1С рекомендуют в целях сторнирования движений использовать специальный документ – «Корректировка записей регистров» или другие существующие и отработанные встроенные механизмы.
Сразу следует оговорить две вещи:
- В версиях конфигураций 8.3 и выше реализованы другие механизмы редактирования движений документов;
- В типовых конфигурациях заполнять и проводить документ «Корректировка записей регистра» может только пользователь с полными правами.
Пара слов о расположении и внешнем виде документа «Корректировка записей регистра»
Если рассматривать вариант работы с программой в обычном (неуправляемом) режиме, в интерфейсе «Полный», то этот документ можно найти в меню «Документы», на закладке «Дополнительно» (Рис.1)
В режиме управляемых форм, запустить документ можно из меню «Все функции».
В программе «Управление производственным предприятием» (версия 8.3.11.2924) в режиме обычного приложения форма нового документа выглядит так, как представлено на Рис.2.
На этой форме, помимо стандартных для любого документа информационной базы реквизитов «Номер» и «Дата» мы видим четыре закладки:
- Заполнение движений;
- Регистры бухгалтерии;
- Регистры накопления;
- Регистры сведений.
На основании внешнего вида документа, мы можем сделать вывод, о том, что он не предназначен для внесения корректировок в записи регистров расчета.
Помимо закладок, на этой форме видна интересная кнопка – «Настройка состава регистров», с нее мы и начнем наш разбор.
Настройка состава регистров
Нажатие на эту кнопку открывает форму подбора тех регистров, информацию в которых мы собираемся редактировать (Рис.3).
Устанавливая и снимая соответствующие флажки в табличных частях закладок, мы сообщаем программе, данные каких таблиц необходимо будет формировать. В соответствии с нашим выбором будет изменяться внешний вид формы документа «Корректировка записей регистров». В частности, на закладках будут появляться табличные части с колонками, указывающими на реквизиты, измерения и ресурсы добавляемых регистров (Рис.4).
Аналогичную функцию выполняет одноименная кнопке команда, прописанная на каждой из трех закладок с типами регистров.
Закладка «Заполнение движений»
Как видно из Рис.5, на этой закладке нет команды «Настройка состава», однако есть флажок, устанавливающий будет ли этот документ служить корректировкой к какому-либо другому объекту.
Активация этого флажка открывает табличную часть, в которой пользователь может выбрать:
- Какое действие он собирается совершить (по умолчанию доступно только сторнирование движений документа);
- С каким объектом будут совершаться действия (сначала надо будет выбрать вид документа, а после конкретная запись информационной базы);
- Примечание или обоснование собственных действий (текстовая строка неограниченной длины).
После выбора объекта и нажатия на кнопку «Заполнить движения» на остальных закладках произойдет автоматическое заполнение табличных частей, и Вы сможете приступить к редактированию.
Важно! На данной закладке обязательно должна быть заполнена колонка «Действие», в противном случае проведение документа будет невозможно. В качестве действия может выступать как включенное в состав конфигурации типовое или нетиповое решение, так и внешняя компонента (обработка).
В частности, предопределенное действие «Сторнирование движений документа» формирует движения аналогичные движениям документа источника, но с противоположными знаками. Это действие не может быть осуществлено для регистров расчета и регистров сведений, так что, если у документа есть такие движения, сторнирование проигнорирует эти записи.
Требования к внешней обработке – действию
Для того чтобы тот или иной обработчик можно было выбрать в качестве «Действия» в табличной части «Заполнение движений», он должен соответствовать следующим критериям:
Так как реквизит «Документ» табличной части «Заполнение движений» не обязательно должен содержать ссылку на какой-либо объект информационной базы, проверку его на пустое значение необходимо включить непосредственно в модуль обработки.
Как мы уже говорили выше, в поздних версиях программы документ «Корректировка записей регистров» отсутствует. В разных конфигурациях его функции выполняют разные документы.
Особенности использования процедуры «Инициализировать» в документе «Корректировка записей регистров»
В общих случаях процедура «Инициализировать» в обработках заполнения табличных частей должны быть установлены и определены три параметра:
- СсылкаНаОбъект – указывает на документ, откуда происходит вызов процедуры обработчика;
- ИмяТабличнойЧасти – привязывает обработку к конкретной табличной части документа;
- Объект – объект информационной базы, который будет обработан.
Именно последние два параметра для документа «Корректировка» имеют некоторые особенности использования.
Во-первых, при добавлении обработчика в справочник внешних обработок для её использования невозможно выбрать конкретную табличную часть.
Во-вторых, в отличии от других процедур заполнения, в параметр «Объект» будет передаваться не тот объект, для которого вызывается обработчик, а данные из реквизита табличной части «Документ».
Таким образом, так-как поле «Документ» необязательно для заполнения, проверку на его заполненность необходимо включать в код модуля обработки.
Сторнирование движений в Бухгалтерии 8.3
В конфигурации «Бухгалтерия предприятия» и всех отраслевых решениях, созданных на ее основе, эта функция выпала на документ «Операция, введенная вручную».
Помимо своей основной функции – регистрации бухгалтерского отражения хозяйственной деятельности, этот объект может отсторнировать движения практически любого документа по любому регистру.
- Откроем журнал операций и нажмем на кнопку «Создать»;
- В открывшемся меню (Рис.6), выберем «Сторно документа»;
- Открывшаяся форма (Рис.7) содержит обязательный для заполнения реквизит «Сторнируемый документ»;
- На основании его движений программа автоматически создаст и заполнит закладки с данными по бухгалтерским регистрам и регистрам накопления;
- Пользователь может самостоятельно указать, какие данные должны быть скорректированы.
Корректировку произвольного регистра можно осуществить, если при создании операции выбрать тип документа «Операция». После этого в командной панели формы объекта необходимо нажать кнопку «Еще» (Рис.8)
Активация команды «Выбор регистров» откроет окно подбора (Рис.9)
Дальнейшие действия мало чем отличаются от любого заполнения табличных частей других документов.
Однако, в некоторых типовых конфигурациях (в частности в «Зарплате и управление персоналом») полностью отсутствует бухгалтерская часть, а, следовательно, нет и «Операций», что же тут придумали разработчики?
Корректировка регистров в ЗУП
Некоторые документы, например «Работа в выходные и праздники», не являются самостоятельными расчетчиками заработной платы, а всего лишь служат основанием для формирования записей при начислениях, именно поэтому в них не предусмотрены рассматриваемые нами команды.
Давайте разберемся в чем разница, что общего у этих двух команд и определимся с основными принципами их использования.
На формах документов, проведенных и находящихся в закрытом для расчета периоде, мы можем увидеть надпись, представленную на Рис.10:
Документы текущего расчетного периода мы можем исправлять и перепроводить без особых проблем, а вот изменения закрытых периодов, скорее всего, потребует дополнительных перерасчетов и внесения корректировок в уже сформированные отчеты.
В первом случае в информационной базе будет создан документ-исправление, на форме исходного документа появится соответствующая информация, форма вновь созданного (в открытом периоде) объекта так же будет содержать ссылку на исходную запись. (Рис.11).
В исправляющем документе будет создана либо закладка «Пересчет прошлого периода», либо «Доначесления», либо «Пересчет начислений».
Во втором случае в программе будет создан отдельный документ «Сторнирование начислений».
«Сторнирование начислений»
Сторнирующий документ можно создать из подсистемы «Зарплата», в меню «См.также» имеется соответствующая команда.
Основным реквизитом объекта является поле «Сторнируемый документ», которое имеет существенное ограничение по типу. Кроме того, на форме предусмотрены:
- Указание периода, в который попадут начисления;
- Переключатель автоматического формирования доначисления;
- Табличная часть, содержащие данные о сотруднике, размере и основных показателях отменяемых движений.
Важно понимать, что любые исправления заработной платы сотрудника, вне зависимости от того в какую сторону оно происходит (доначисление или удержание) жестко регламентируется существующим законодательством. В частности, согласно ст. 137 Трудового кодекса удержать излишне начисленную заработную плату можно, для:
- Возмещения выданного в счет з/п и неотработанного аванса;
- Погашения аванса, если он был не израсходован и не возвращен;
- Возврата сумм, выплаченных в результате счетных ошибок (то есть ошибках при арифметических расчетах);
- В качестве компенсации излишне оплаченного отпуска при увольнении.
Кроме этого, существует несколько случаев, когда работник может в добровольном порядке возместить ошибочно выданную ему заработную плату и все они регламентируются п.3 ст. 1109 ГК РФ.
Подводные камни корректировок
Прежде, чем приступать к внесению изменений в закрытые периоды и редактированию записей следует тщательно взвесить все за и против этой процедуры:
- Даже незначительные корректировки могут повлечь серьезные последствия, так как на основе старых данных уже могут быть сформированы новые документы;
- Всегда представляйте, как Ваши изменения повлияют на работу других подразделений;
- Если в компании настроена синхронизация (обмен данными) между базами, изменения лучше делать на исходном документе.
Понятно, что полностью избежать корректировок при большом количестве пользователей вряд ли получится, но постарайтесь свести их к минимуму, в частности, за счет тщательного оперативного контроля вводимой информации. В этом случае Вы существенно сократите влияние «человеческого фактора».
Нужно скорректировать остатки по регистру накопления в бухгалтерии.
В типовой конфигурации есть документ КорректировкаЗаписейРегистров, но я вот что-то не пойму его структуры.
Может у кого есть пример как добавить строку в этот документ скажем по произвольному регистру накопления?
он напрямую работает с регистрами - табличные части формируются динамически. Нужно создать набор записей регистра накопления, где в качестве регистратора будет корректировка. Только вот надо или вручную предварительно или программно(щас не вспомню где) указать состав регистров документа. Иначе при перезаписи документа вручную всего его движения удалятся.
погугли, есть много ссылок на прочие форумы, там подробно описан алгоритм создания дока и привязки его к регистру.
Объект = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
Объект.Дата = КонецДня(ДатаДокумента);
Объект.УстановитьНовыйНомер();
Объект.ИспользоватьЗаполнениеДвижений = Истина;
Объект.ЗаполнениеДвижений.Добавить();
и т.д.
Стр.Организация = ВыборкаДетальныеЗаписи.Организация;
Стр.ДоговорКонтрагента = Планысчетов.Хозрасчетный.ЕНприУСН;
Стр.СуммаВзаиморасчетов = ВыборкаДетальныеЗаписи.СуммаОборот;
Стр.Период = КонецГода(дата);
//-----
Стр2 = ДокКор.Движения.РасходыПриУСН.ДобавитьПриход();
Стр2.Организация = ВыборкаДетальныеЗаписи.Организация;
Стр2.СтатусыОплатыРасходовУСН = Перечисления.СтатусыРасходовУСН.НеОплачено;
Стр2.ВидРасхода = Перечисления.ВидыРасходовУСН.Налоги;
Стр2.СчетУчета = Планысчетов.Хозрасчетный.ЕНприУСН;
Стр2.Валюта = Валюта643;
Стр2.ОтражениеВУСН = Перечисления.ОтражениеВУСН.НеПринимаются;
Стр2.Сумма = ВыборкаДетальныеЗаписи.СуммаОборот;
Стр2.Период = КонецГода(дата);
Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика.
// // Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны.
Валюта643 = Справочники.Валюты.НайтиПоКоду("643");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОборотыДтКт.СуммаОборот,
| ХозрасчетныйОборотыДтКт.Организация
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоГода, &КонецГода, , СчетДт = ЗНАЧЕНИЕ(Плансчетов.Хозрасчетный.ПрочиеРасходыНеОблагаемыеЕНВД), , СчетКт = ЗНАЧЕНИЕ(Плансчетов.Хозрасчетный.ЕНприУСН), , ) КАК ХозрасчетныйОборотыДтКт";
дата = дата(НалогиЗаГод+"0101");
Запрос.УстановитьПараметр("КонецГода", КонецГода(дата));
Запрос.УстановитьПараметр("НачалоГода", НачалоГода(дата));
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Стр.Организация = ВыборкаДетальныеЗаписи.Организация;
Стр.ДоговорКонтрагента = Планысчетов.Хозрасчетный.ЕНприУСН;
Стр.СуммаВзаиморасчетов = ВыборкаДетальныеЗаписи.СуммаОборот;
Стр.Период = КонецГода(дата);
Стр2 = ДокКор.Движения.РасходыПриУСН.ДобавитьПриход();
Стр2.Организация = ВыборкаДетальныеЗаписи.Организация;
Стр2.СтатусыОплатыРасходовУСН = Перечисления.СтатусыРасходовУСН.НеОплачено;
Стр2.ВидРасхода = Перечисления.ВидыРасходовУСН.Налоги;
Стр2.СчетУчета = Планысчетов.Хозрасчетный.ЕНприУСН;
Стр2.Валюта = Валюта643;
Стр2.ОтражениеВУСН = Перечисления.ОтражениеВУСН.НеПринимаются;
Стр2.Сумма = ВыборкаДетальныеЗаписи.СуммаОборот;
Стр2.Период = КонецГода(дата);
КонецЦикла;
Попытка
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
// // Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны.
Функция ПолучитьДокКорректировки()
ДокКор = неопределено;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| КорректировкаЗаписейРегистров.Ссылка
|ИЗ
| Документ.КорректировкаЗаписейРегистров КАК КорректировкаЗаписейРегистров
|ГДЕ
| КорректировкаЗаписейРегистров.Комментарий ПОДОБНО &Комментарий
| И КорректировкаЗаписейРегистров.Дата >= &Дата1
| И КорректировкаЗаписейРегистров.Дата | И КорректировкаЗаписейРегистров.ПометкаУдаления = ЛОЖЬ";
Запрос.УстановитьПараметр("Дата2", КонецГода(дата));
Запрос.УстановитьПараметр("Дата1", НачалоГода(дата));
Запрос.УстановитьПараметр("Комментарий", "ДвиженияПоРегистрамУСН");
Если ВыборкаДетальныеЗаписи.Количество() = 0 Тогда
ДокКор = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
ДокКор.Комментарий = "ДвиженияПоРегистрамУСН";
ДокКор.Дата = КонецГода(дата);
НоваяСтрока = ДокКор.ТаблицаРегистровНакопления.Добавить();
НоваяСтрока.Имя = "ВзаиморасчетыУСН" ;
НоваяСтрока.Представление = "ВзаиморасчетыУСН";
НоваяСтрока2 = ДокКор.ТаблицаРегистровНакопления.Добавить();
НоваяСтрока2.Имя = "РасходыПриУСН" ;
НоваяСтрока2.Представление = "РасходыПриУСН";
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
ДокКор = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
КонецЦикла;
КонецЕсли;
Это для начисления единого налога при УСН.
Бух делает операцию,
а обработка делает движения по регистрам УСН.
Документ «Корректировка записей регистров» в типовых конфигурациях 1С предназначен для ручной корректировки записей регистров накопления, зависимых регистров сведений и регистров бухгалтерии. Типичные ситуации, в которых может понадобиться документ «Корректировка записей регистров», - ввод начальных остатков, исправление ошибок в учете, отражение в учете операций, для которых в конфигурации нет специальных документов. В документе есть сервис автоматического заполнения движений с предопределенным действием «Сторно движений документа». С его помощь можно автоматически создать движения по регистрам бухгалтерии и регистрам накопления, аналогичные движениям указанного документа, но с отрицательными значениями.
Иногда количество вводимых записей по регистрам может быть велико и тогда целесообразно выполнить корректировку регистров программно. Документ «Корректировка записей регистров», как Вы уже, наверно, догадались, не совсем обычный. А иначе бы о нем не стоило и писать. В этом плане у него много общего с документом «Операция», который мы разбирали недавно.
В качестве примера, когда может потребоваться программно создать документ «Корректировка записей регистров», предлагаю рассмотреть операцию переоценки основных средств. Переоценка основных средств - ситуация хоть и нечастая, но все же вполне реальная, а специального документа для переоценки в типовых конфигурациях 1С нет. Чтобы пример получился более представительным (включал в себя все виды корректируемых регистров), я сделал обработку для конфигурации «1С:Управление производственным предприятием». Но с другой стороны, чтобы не перегружать пример лишней информацией, мы рассмотрим случай, когда в результате переоценки происходит увеличение стоимости основных средств и накопленной амортизации (дооценка).
В этом случае переоценка основных средств отражается в бухгалтерском учете проводками:
Дт. 01.01. - Кт. 83.01 - Увеличение первоначальной стоимости ОС.
Дт. 83.01. - Кт. 02.01 - Увеличение суммы накопленной амортизации ОС.
В налоговом учете операция переоценки основных средств не предусмотрена, но для того чтобы соблюдалось равенство БУ = НУ + ПР + ВР, мы должны отразить в учете возникновение постоянных разниц. Также мы должны сделать движения в регистрах накопления «СтоимостьОС», «СтоимостьОСБухгалтерскийУчет» и в регистрах сведений «ПараметрыАмортизацииОС», «ПараметрыАмортизацииОСБухгалтерскийУчет», «СобытияОС» и «СобытияОСОрганизаций».
Исходные данные для переоценки ОС берутся из dbf-таблицы с набором полей:
OS (строка) - код основного средства;
SumU (число) - сумма дооценки по управленческому учету в единицах валюты управленческого учета;
SumB (число) - сумма дооценки по бухгалтерскому учету;
AmortU (число) - сумма дооценки накопленной амортизации по управленческому учету в единицах валюты управленческого учета;
AmortB (число) - сумма дооценки накопленной амортизации по бухгалтерскому учету.
Упрощенный фрагмент кода обработки, иллюстрирующий запись проводок в регистр бухгалтерии, представлен в листинге:
Как видно из примера, документ «Корректировка записей регистров» подобно документу «Операция» используется в качестве регистратора, движения же записываются непосредственно в регистр. Движения по регистрам накопления и регистрам сведений делаются аналогично.
В некоторых типовых конфигурациях фирмы 1С существует возможность ручной корректировки движений документа по регистрам. В конфигурации 1С: Бухгалтерия 8 для этого, при наличии соответствующих прав, нужно открыть движения документа и установить флаг “Ручная корректировка”. Однако, иногда возникает необходимость выполнить корректировку движений большого количества документов. В этом случае нам понадобится обработка, которая изменит движения документов без перепроведения.
Рассмотрим как изменить движения документа на примере конфигурации 1С: Бухгалтерия 8. Менять будем движения по регистру бухгалтерии “Хозрасчетный”. Пусть перед нами стоит задача заполнить суммы налогового учета по данным бухгалтерского. Предположим, что у нас уже есть обработка, которая выбирает необходимые нам документы и последовательно обрабатывает их с помощью описанной нами процедуры “ИзменитьДвиженияДокумента”. Посмотрим как должна выглядеть эта процедура.
Процедура ИзменитьДвиженияДокумента ( ДокументСсылка )
// прочитаем набор записей регистра по документу
НаборЗаписей = РегистрыБухгалтерии . Хозрасчетный . СоздатьНаборЗаписей ( ) ;
НаборЗаписей . Отбор . Регистратор . Установить ( ДокументСсылка ) ;
НаборЗаписей . Прочитать ( ) ;
Если НаборЗаписей . Количество ( ) = 0 Тогда
Возврат ;
КонецЕсли ;
// переберем все записи набора и заполним суммы по налоговому учету
Для каждого Запись из НаборЗаписей Цикл
// перед изменением сумм проверяем ведется ли налоговый учет на выбранном счёте
Если Запись . СчетДт . НалоговыйУчет Тогда
Запись . СуммаНУДт = Запись . Сумма ;
КонецЕсли ;
Если Запись . СчетКт . НалоговыйУчет Тогда
Запись . СуммаНУКт = Запись . Сумма ;
КонецЕсли ;
КонецЦикла ;
// установим признак обмена данными
НаборЗаписей . ОбменДанными . Загрузка = Истина ;
НаборЗаписей . Записать ( ) ;
// установим признак ручной корректировки документа,
// предварительно установив признак обмена данными
ДокументОбъект = ДокументСсылка . ПолучитьОбъект ( ) ;
ДокументОбъект . ОбменДанными . Загрузка = Истина ;
ДокументОбъект . РучнаяКорректировка = Истина ;
ДокументОбъект . Записать ( ) ;
КонецПроцедуры
Хотелось бы отметить, что без проверки ведения налогового учета на счёте, при попытке записать набор, содержащий проводку с ненулевой суммой по счёту на котором не ведется налоговый учет, возникнет ошибка следующего содержания:
Запись не верна! Поле “Сумма (налоговый учет)” должно быть пустым! (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)
Режим обмена данными устанавливается следующими строками:
. . .
НаборЗаписей . ОбменДанными . Загрузка = Истина ;
. . .
ДокументОбъект . ОбменДанными . Загрузка = Истина ;
. . .
Это необходимо для того, чтобы не выполнялся программный код, находящийся в обработчиках событий “ПередЗаписью” модуля набора записей регистра бухгалтерии “Хозрасчетный” и модуля корректируемого документа. В каждом из них (для типовых конфигураций) есть проверка следующего вида:
Движения документа отредактированы вручную и не могут быть автоматически актуализированы
Статья найдена на просторах интернета
Реклама — это искусство делать из полуправды целую ложь.
— Эдгар Шоафф
Регистры сведений в 1С — это прикладные объекты конфигурации для хранения данных в структурированном виде (в разрезе измерений). Например, в регистре сведений можно хранить курсы валют в разрезе валют, цены номенклатуры в разрезе номенклатур, ФИО физических лиц в разрезе физических лиц и т.д.
При проектировании разработчик указывает необходимость хранения данных в разрезе времени и минимальную периодичность, с которой записи будут храниться в регистре:
Регистры сведений, для которых указана периодичность, называются периодическими.
Изменение данных в регистре может осуществляться как вручную, так и при помощи документов. Режим записи в регистр определяет разработчик на этапе проектирования:
Физически регистр сведений представляет собой таблицу, в которой хранятся следующие данные:
- измерения — описывают разрезы, в которых хранится информация;
- период — поле, используемое для разворота данных по времени. Поле добавляется автоматически при указании свойства «Периодичность», отличного от «Непериодический»;
- регистратор — поле, используемое для хранения документа, с которым связана запись. Поле добавляется автоматически при указании свойства «Режим записи» в значение «Подчинение регистратору»;
- ресурсы — непосредственно хранят информацию для комбинации измерений;
- реквизиты — дополнительная произвольная информация, относящаяся к конкретной записи регистра.
Для всех регистров сведений обеспечивается контроль уникальности записей, т.е. в регистре не может быть двух одинаковых записей. Одинаковыми считаются записи, у которых совпадают значения измерений, период (если регистр периодический) и регистратор (если регистр подчинен регистратору).
Добавление записей
Программно добавить записи в регистр сведений можно при помощи:
- объекта НаборЗаписей ;
- объекта МенеджерЗаписи .
Объект МенеджерЗаписи можно использовать только для работы с независимыми регистрами. Причем можно обрабатывать только одну запись. Объект предназначен в основном для интерактивной работы, но программно с ним также можно работать. На системном уровне МенеджерЗаписи использует объект НаборЗаписей .
Общая схема добавления записей в регистр сведений при помощи объекта НаборЗаписей выглядит так:
- создание объекта НаборЗаписей ;
- наложение отборов на измерения, период (если регистр периодический) и регистратора (если регистр подчинен регистратору);
- добавление и заполнение значений полей записей;
- запись набора записей.
Общая схема добавления записей в регистр сведений при помощи объекта МенеджерЗаписи выглядит так:
- создание объекта МенеджерЗаписи ;
- заполнение значений полей записи;
- запись записи.
Изменение записей
Изменять существующие записи регистров сведений возможно при помощи объектов НаборЗаписей и МенеджерЗаписи . Ограничения объекта МенеджерЗаписи были описаны выше.
Общая схема редактирования записей регистров сведений:
- создание объекта НаборЗаписей или МенеджерЗаписи ;
- наложение отборов;
- чтение записей базы данных, соответствующих наложенным отборам;
- редактирование прочитанных записей;
- запись отредактированных записей.
Чтение записей
Чтение информации из базы данных рекомендуется выполнять при помощи запросов. Данный способ обеспечивает гибкое применение отборов и группировок, а также возможность выбора записей из нескольких таблиц.
Для периодических регистров сведений есть возможность получить наиболее поздние записи, период которых меньше указанной даты — срез последних, и наиболее ранние записи, период которых больше указанной даты — срез первых. Для получения среза первых и среза последних запросом необходимо использовать одноименные виртуальные таблицы, в параметрах которых сразу можно задать дату среза и отборы. Отборы, если они необходимы, рекомендуется накладывать именно в параметрах виртуальных таблиц, т.к. это позволяет ускорить выполнение запроса.
Кроме чтения запросом возможно использование методов объектной модели.
Для непериодических регистров сведений:
- Выбрать(Отбор, Порядок) — выбирает записи с указанным отбором;
- ВыбратьПоРегистратору(Регистратор) — выбирает все записи указанного регистратора;
- Получить(Отбор) — получает ресурсы записи с отбором по всем измерениям.
Для периодических регистров сведений:
- Выбрать(НачалоИнтервала, КонецИнтервала, Отбор, Порядок) — выбирает записи с указанным отбором, у которых период находится между НачалоИнтервала и КонецИнтервала ;
- ВыбратьПоРегистратору(Регистратор) — выбирает все записи указанного регистратора;
- Получить(Период, Отбор) — получает ресурсы записи с отбором по всем измерениям и периоду;
- ПолучитьПервое(НачалоПериода, Отбор) — получает ресурсы наиболее ранней записи, соответствующей указанным периоду и отбору;
- ПолучитьПоследнее(КонецПериода, Отбор) — получает ресурсы наиболее поздней записи, соответствующей указанным периоду и отбору;
- СрезПервых(НачалоПериода, Отбор) — получает таблицу наиболее ранних записей, соответствующую указанным периоду и отбору;
- СрезПоследних(КонецПериода, Отбор) — получает таблицу наиболее поздних записей, соответствующую указанным периоду и отбору.
Удаление записей
Для удаления записи (записей) в независимом регистре сведений необходимо:
Для удаления записей в подчиненном регистре сведений необходимо:
- создать набор записей;
- наложить отбор на регистратора;
- записать набор записей без предварительного чтения.
Очистка регистра сведений
Для удаления всех записей в независимом регистре сведений достаточно записать набор записей этого регистра без установки отборов:
Запись в регистр сведений, подчиненный регистратору, возможна только при установке отбора по регистратору, поэтому для очистки таких регистров необходимо:
- получить перечень ссылок всех регистраторов регистра сведений;
- последовательно записать пустой набор записей с отбором по регистраторам из первого пункта.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Практически все документы в программах 1С, кроме записей в регистр бухгалтерии, формируют движения по регистрам, накапливающим информацию об изменении того или иного объекта учета, на основании которой, в свою очередь, формируются отчеты. Рассмотрим, на примере последней версии 1С:Бухгалтерия 8 – версии 3.0, как формируются записи в регистрах «Начисления зарплаты»…
Рис.1 Записи в регистрах «Начисления зарплаты»
… и «Реализация услуг». Мы видим, что кроме бухгалтерских проводок, в отчете о движении документа присутствуют разные закладки. Это и есть записи регистров, и у каждого документа они свои.
Рис.2 Записи регистров
Посмотреть движение по регистрам можно, нажав кнопку «Показать проводки и другие движения по регистрам», которая будет в любом журнале документов или документе, формирующем движение.
Рис.3 Показать проводки и другие движения по регистрам
Если регистров много, мы можем, используя кнопку «Еще» - команда «Выбор регистров», отобрать регистры, которые мы хотим отобразить.
Рис.4 Команда «Выбор регистров»
Рис.5 Настройка отображения регистров
После отбора нужных регистров, отчет о движении отобразит только движения по выбранным регистрам.
Рис.6 Движения по выбранным регистрам
Обратите внимание, в некоторых документах допускается ручная корректировка регистров. Но, если пользователь необдуманно внесет исправления в одну запись, не исправив другую, связанную с ней, это может повлечь ошибки при попытках сформировать отчетность.
Рис.7 Ручная корректировка регистров
Для корректировки регистров есть два способа:
- Через документ «Операция»;
- В документе, в котором были произведены движения, установив галочку на разрешении ручной корректировки.
Остановимся подробнее на этих вариантах.
Корректировка регистров, используя документ «Операция»
Откроем журнал «Операции, введенные вручную» из раздела меню «Операции».
Рис.8 Журнал «Операции, введенные вручную»
Нажав кнопку «Создать», мы видим варианты операций – «Операция», «Сторно документа», «Типовая операция».
Рис.9 Варианты операций
Для корректировки записей регистра мы можем использовать первые два документа. Разберем принцип их работы.
Документ «Операция»
Рассмотрим, как можно работать с регистрами документом «Операция».
Предположим, пользователь вводит бухгалтерскую запись «Операция, введенная вручную» и не учитывает движения по регистрам. Возьмем пример – исправление начисления зарплаты. Сразу оговорюсь, что такие операции необходимо проводить в документе по начислению зарплаты. Мы делаем это для примера, чтобы показать работу регистров. Проводкой мы уменьшаем начисление зарплаты.
Рис.10 Работа с регистрами документом «Операция»
Сформировав отчет «Карточка счета» (раздел меню «Отчеты» - «Стандартные») по сотруднику, мы видим, что по бухгалтерским проводкам проходит наша корректировка. Уменьшив на 200 руб. сумму зарплаты, у нас получается начислено 21460 руб. (21660 руб. -200 руб.).
Рис.11 Отчет «Карточка счета» по сотруднику
Обороты идут, пользователь рад, но до поры, до времени. Забегая вперед, для примера, сформируем отчет «2-НДФЛ для передачи в ИФНС» по сотруднику. (Раздел меню «Отчеты» - «Регламентированные отчеты»). Из отчета мы видим, что сумма доходов за декабрь не изменилась. Это ситуация возникла, потому что у нас не были сформированы движения по регистрам, которые предусмотрены для заполнения отчетов, и на отчеты наша бухгалтерская операция никак не повлияла.
Рис.12 Сумма доходов за декабрь не изменилась
Вернемся к нашему документу «Операция». Выберем по кнопке «Еще» пункт «Выбор регистров».
Рис.13 Выбор регистров
В открывшемся списке выбираем регистр «Учет доходов для исчисления НДФЛ».
Рис.14 Учет доходов для исчисления НДФЛ
В нашем документе «Операция» появляется еще одна закладка с названием выбранного регистра, где мы добавляем запись, заполняя необходимые данные.
Рис.15 Закладка с названием выбранного регистра
С помощью документа «Операция» мы производим корректировку этого регистра. В операции начисления зарплаты задействовано больше регистров, но мы показываем работу документа на примере одного регистра.
Проверим, как отразилась корректировка регистра «Учет доходов для исчисления НДФЛ» на отчете. Сформируем еще раз отчет «2-НДФЛ для передачи в ИФНС» и увидим, что сумма дохода по строке за 12 месяц изменилась на 200 руб., благодаря корректировке регистра.
Рис.16 Отчет «2-НДФЛ для передачи в ИФНС»
Этот пример нам показывает, что на основании записей регистров происходит заполнение отчетов, и одного исправления бухгалтерской записи документом «Операция, введенная вручную» недостаточно. В случае необходимости, корректировку записей регистров накопления можно сделать этим же документом, выбрав нужный регистр.
Документ «Сторно»
В журнале документов «Операции, введенные вручную» предусмотрен документ «Сторно». Он предназначен для корректировки записей документов закрытого или прошлого периода, в котором уже нельзя вносить изменения. Заполняется он просто. Выбрав документ, записи которого необходимо изменить, записи в таблице становятся доступны для редактирования. Записи отображаются красным, при этом пользователь может изменять их частично, изменяя только записи движения по регистрам.
Рис.17 Сторнировани
Рис.18 НДС Продажи и Реализация услуг
Данная операция приведена для примера. В некоторых программах бывает уже предусмотрены корректировочные документы. Например, документы «Корректировка реализации», «Корректировка поступления», «Корректировка долга» покупателя или поставщику и т.п., в программе «1С:Бухгалтерия 3.0».
Рис.19 Корректировочные документы в «Продажах»
Рис.20 Корректировочные документы в «Покупках»
Регистры, сформированные обработкой «Свертка информационной базы»
Хотелось бы коротко упомянуть еще один способ корректировки регистров. При больших объемах работы программа 1С бывает сильно перегружена, и возникает необходимость навести порядок, в том числе, и в регистрах. Обработка «Свертка информационной базы» позволяет сформировать остатки по регистрам на определенную дату.
Рис.21 Свертка информационной базы
Подробно на ней мы останавливаться не будем, но упомянем, что в результате этой операции в журнале «Операции, введенные вручную» формируются записи с остатками в разрезе регистров, и при необходимости пользователь может их скорректировать или удалить.
Рис.22 Записи с остатками в разрезе регистров
На записях в регистры построена вся работа программы, поэтому пользователю необходимо понимать принцип их работы, как происходит запись в регистры, как корректно произвести их корректировку в случае необходимости. Неправильное внесение корректировок отразится на достоверности информации, в связи с чем, могут возникнуть ошибки при формировании отчетности. Если у вас остались вопросы, наши специалисты с радостью проконсультируют вас, а также подберут оптимальные тарифы и цены на сопровождение 1С.
Читайте также: