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

1С 8.3 : Программная корректировка движений документа

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

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

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


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

Хотелось бы отметить, что без проверки ведения налогового учета на счёте, при попытке записать набор, содержащий проводку с ненулевой суммой по счёту на котором не ведется налоговый учет, возникнет ошибка следующего содержания:

Запись не верна! Поле “Сумма (налоговый учет)” должно быть пустым! (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)

Режим обмена данными устанавливается следующими строками:

Код 1C v 8.х
 НаборЗаписей.ОбменДанными.Загрузка = Истина;
ДокументОбъект.ОбменДанными.Загрузка = Истина;

Это необходимо для того, чтобы не выполнялся программный код, находящийся в обработчиках событий “ПередЗаписью” модуля набора записей регистра бухгалтерии “Хозрасчетный” и модуля корректируемого документа. В каждом из них (для типовых конфигураций) есть проверка следующего вида:

Код 1C v 8.х
 Если ОбменДанными.Загрузка Тогда

Возврат;

КонецЕсли;

Признак ручной корректировки документа (ДокументОбъект.РучнаяКорректировка = Истина) необходимо устанавливать для того, чтобы изменения сохранились при повторном проведении документа. При проведении такого документа в конфигурации 1С:Бухаглерия 8 выдается следующее сообщение:

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

Источник

Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 10201
 0 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 2
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код...
Google maps : вывод точек на карту и режим панорамы 2
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С...
Автоматическая архивация баз 1С с использованием Cobian Backup и VBS скриптов 6
Клиент попросил настроить автоматическую архивацию баз 1С раз в три дня и выгрузку архивов на Dropbox и на FTP Сервер. Кроме 1С нужно архивировать папку с рабочими документами. Хочет - так хочет, делаем: Первым делом...
Ввод данных по командировкам в программе ЗУП 0
Ввод сведений о командировках в программе 1С: Зарплата и управление персоналом 8 (ред.30) осуществляется в Разделе Кадры - Все кадровые документы - Создать - Командировка Откроется документ: Ввод сведений о...
Ввод договоров ГПХ в ЗУП (счет 76) 5
Часто меня спрашивают: Как правильно отразить договор ГПХ в ЗУП? Ниже небольшая, последовательная инструкция: Прием на работу Сведения о физическом лице, выполняющем работы по договору подряда, должны быть внесены...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.