Обеспечение возможности ручной корректировки проводок в самописном документе |
Я |
10.02.14 — 22:52
Доброго времени суток, уважаемые эксперты. Стоит задача: обеспечить возможность ручной корректировки проводок созданного документа ПриходТовара(имеющего соответствующий реквизит РучнаяКорректировка).
Для этого на кнопку ДтКт на форме документа подцеплена стандартная обработка КорректировкаДвижений.
Содержание модуля объекта следующее:
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат;
КонецЕсли;
// регистр ПРОБА_движения_товаров Приход
Движения.ПРОБА_движения_товаров.Записывать = Истина;
Для Каждого ТекСтрокаПриходТовара Из ПриходТовара Цикл
Движение = Движения.ПРОБА_движения_товаров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Дата = Дата;
Движение.Партия = Ссылка;
Движение.Товар = ТекСтрокаПриходТовара.Товар;
Движение.Склад = Склад;
Движение.Организация = Организация;
Движение.Количество = ТекСтрокаПриходТовара.Количество;
Движение.Стоимость = ТекСтрокаПриходТовара.Сумма;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ДополнительныеСвойства.Вставить(«ЭтоНовый», ЭтоНовый());
// Посчитать суммы документа и записать ее в соответствующий реквизит шапки для показа в журналах
//СуммаДокумента = Товары.Итог(«Сумма»);
КонецПроцедуры
Запустил отладку, установил флажок «Корректировка движений», попробовал провести — вылезла ошибка
«Данные были изменены или удалены другим пользователем».
Решил данную проблему обновлением формы документа:
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ЭтаФорма.Прочитать();
КонецПроцедуры
Всё чудесно проводится,но появилась новая проблема — при изменении значений табличной части или реквизитов формы и последующем проведении сохраняются старые значения.(К примеру, был приход на Склад1 5 единиц Товара1; изменяешь 5 единиц на 4 — всё равно остаётся 5).
Очевидно, что это связано с этим:
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ЭтаФорма.Прочитать();
КонецПроцедуры
Возникает вопрос: как правильно обновить форму? В правильном ли месте(на клиенте) я это делаю?
Заранее спасибо.
1 — 10.02.14 — 22:59
где сохраняются старые значения? в проводках?
2 — 10.02.14 — 23:00
И в проводках, и на форме
3 — 10.02.14 — 23:03
так, действия на форме , которые передзаписью — бред
посмотрите, как в типовых.
4 — 10.02.14 — 23:05
чтобы разрешить ручную корректировку проводок
добавляем реквизит РучнаяКорректировка
о какой конфигурации идет речь непонятно…потому смотрим БУ:) включаем наш документ в подписку
5 — 10.02.14 — 23:07
Конфигурация Бухгалтерия предприятия, редакция 3.0 (3.0.28.7)
Реквизит РучнаяКорректировка уже добавлен; документ в подписку уже включен
6 — 10.02.14 — 23:12
в общую команду ПоказатьДвиженияДокумента включен?
7 — 10.02.14 — 23:14
отмена проведения как написана?
8 — 10.02.14 — 23:14
вообще проще взять любой типовой документ, хоть поступление, хоть реализацию и по ним проверить
9 — 10.02.14 — 23:15
и еще, нет ли у вас реквизита «Движение» на форме?:))
10 — 10.02.14 — 23:18
В общую команду документ включен.
Отмена проведения:
Процедура ОтменаПроведенияМО() ЭКСПОРТ
ЭтотОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
ПроведениеСервер.ПодготовитьНаборыЗаписейКОтменеПроведения(ЭтотОбъект);
Движения.Записать();
КонецПроцедуры
Реквизита «Движение» на форме нет=)
lighthead9288
11 — 12.02.14 — 16:37
Спасибо большое за ответы! Я разобрался )
Дело вот в чём: в стандартной обработке «КорректировкаДвижений», к которой «подцеплен» документ, есть такой участок:
////——————Изменяем значение реквизита формы——-
// ЗаписатьЗначениеРучнойКорректировки();
////———————————————————
ЗаписатьДвижения(Отказ);
Если НЕ Отказ Тогда
Если ИзмененаРучнаяКорректировка Тогда
ОповеститьОбИзменении(ДокументСсылка);
КонецЕсли;
ЭтаФорма.Модифицированность = Ложь;
Оповестить(«ВыполненаЗаписьДокумента»,Новый Структура(«ДокументСсылка»,ДокументСсылка));
Закрыть();
КонецЕсли;
Следовательно, на форме надо было просто обработать это оповещение в событии ОбработкаОповещения:
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// Вставить содержимое обработчика.
Если ИмяСобытия = «ВыполненаЗаписьДокумента»
тогда
Прочитать();
КонецЕсли;
КонецПроцедуры
Показан процесс внесения изменений (доработки) в конфигурацию УТП для Украины, для добавления возможности — ручной корректировки движений аналогичной той, которая используется в конфигурации Бухгалтерия для Украины ред. 1.2.
Описание задачи.
В конфигурации 1С:Бухгалтерия для Украины ред. 1.2. (БП) существует возможность ручной корректировки движений документов. Необходимо перенести данную возможность в конфигурацию Управление торговым предприятием для Украины (УТП).
Решение задачи.
- Минусы — конфигурацию нужно снимать с замка и дорабатывать.
- Плюсы — Доработки будут сделаны с минимальным влиянием на обновление.
1. Снимем конфигурацию с замка.
Для того чтобы вносить в конфигурацию свои доработки необходимо Включить возможность изменения.
Для этого идем в Конфигуратор, и в главном меню переходим в меню Конфигурация — Поддержка — Настройка поддержки. В новой форме нажимаем на кнопку Включить возможность изменения. Программа нам говорит, что в этом случае будет невозможно выполнять обновление в автоматическом режиме. Но мы настроены серьезно и с этим соглашаемся, нажав Да. Откроется новая форма Настройка правил поддержки в которой мы ничего не меняем и просто нажимаем ОК.
После того как программа «подумает», кнопка Включить возможность изменения исчезнет. Это означает что можно продолжать.
Теперь два раза щелкаем по самой верхней строке в дереве, где написано УправлениеТорговымПредприятием, и открывшемся новом окне отмечаем Объект поставщика редактируется с сохранением поддержки. Нажимаем ОК.
Теперь аналогичные манипуляции необходимо проделать с документом Платежное поручение исходящее.
Для этого раскрываем ветку Документы, находим в ней ПлатежноеПоручениеИсходящее и проделываем аналогичные манипуляции.
На этом подготовка конфигурации завершена.
2. Добавляем новые общие модули.
Для этого разворачиваем ветку Общие, находим ветку Общие модули, и добавляем три новых общих модуля:
- script_ОбщегоНазначения
- script_ПлатежноеПоручениеИсходящее
- script_ПодпискиНаСобытияФорм
Теперь необходимо настроить свойства каждого общего модуля. Для этого на каждом их них нужно нажать правой кнопкой мыши, и из выпадающего меню выбрать пункт Свойства. Далее нужно установить галочки как показано на картинке ниже.
Теперь нужно вставить в каждый общий модуль текст программного кода, который можно взять из спойлеров расположенных ниже. Для этого нужно два раза щелкнуть ЛКМ на общем модуле. После этого программа откроет окно редактора текста общего модуля, в который нужно скопировать и вставить текст из соответствующего спойлера.
Текст общего модуля — script_ОбщегоНазначения
Текст общего модуля — script_ПлатежноеПоручениеИсходящее
Текст общего модуля — script_ПодпискиНаСобытияФорм
С общими модулями тоже закончили. Идем дальше.
3. Добавление подписок на событие.
Теперь необходимо добавить две подписки на события:
- Обработка проведения
- Обработка отмены проведения
Данные обработчики перехватывают и обрабатывают попытку проведения или отмены проведения для тех документов, движения которых будут отредактированы пользователем вручную.
Для этого в дереве метаданных находим ветку Подписки на события и добавляем новые подписки:
- script_РучнаяКорректировка_ОбработкаПроведения
- script_РучнаяКорректировка_ОбработкаУдаленияПроведения
После этого каждую подписку нужно настроить так, как показано на картинке ниже.
С подписками тоже разобрались.
4. Добавление нового реквизита — Ручная корректировка.
Теперь в документ Платежное поручение исходящее необходимо добавить новый реквизит объекта — Ручная корректировка.
Примечание
В УТП установлен режим совместимости 8.2.13. Из-за этого мы не можем использовать объект метаданных — Общие реквизиты. Но разработчик всегда может самостоятельно поднять режим совместимости до версии 8.2.14. Это позволит не добавлять новый реквизит в каждый документ, но добавить один общий для всех реквизит — Ручная корректировка.
Но мы пойдем по пути добавления реквизита в документ.
Открываем окно дерева метаданных, разворачиваем ветку Документы, находим в ней документ ПлатежноеПоручениеИсходящее, и раскрываем его ветку. Далее раскрываем ветку Реквизиты и добавляем новый реквизит script_РучнаяКорректировка (Тип значения: Булево).
5. Изменения в форме документа.
После этого необходимо внести изменения в форму документа. Нам нужно чтобы при нажатии на кнопку ДтКт открывалась новая форма Корректировка движений.
Но мы не будем изменять родную форму — мы ее скопируем, назначим скопированную форму основной, и все доработки будем делать на скопированной форме.
Кроме того, нам нужно изменить форму программно, чтобы в случае обновления затрачивать минимум времени.
Для этого разворачиваем ветку Формы, находим в ней — ФормаДокумента и копируем ее. В результате появится еще одна форма — ФормаДокумента1. Переименовываем ее на scipt_ФормаДокумента.
Далее два раза щелкаем ЛКП на строке с именем документа — ПлатежноеПоручениеИсходящее. В результате откроется окно, в котором нужно перейти на закладку Формы. На этой закладке нам нужно заменить оригинальную форму документа на новую scipt_ФормаДокумента.
После этих манипуляций основной формой документа станет новая скопированная форма.
Теперь будем вносить изменения в модуль новой формы.
Для этого щелкаем на ней ЛКМ, и переходим на закладку Модуль. Опускаемся в самый конец текста и после всех строк вставляем кусок кода, расположенный ниже под спойлером:
6. Изменения в форме списка (журнале) документов.
Выполняем те же манипуляции с формой списка, аналогичные — с формой документа. Т.е. копируем родную форму, переименовываем скопированную форму и устанавливаем ее основной вместо оригинальной. В результате получится должно так, как показано на картинке.
После этого открываем скопированную форму, переходим в конец модуля и вставляем следующий кусок кода:
7. Добавление обработки — Корректировка движений.
Главным элементом данного механизма является встроенная в БП обработка Корректировка движений. Необходимо ее сохранить из БП на диск, немного доработать и вставить в УТП в ветку Обработки.
Для этого находим в дереве метаданных ветку Обработки. Нажимаем на этой ветке ПКМ, и из выпадающего меню выбираем пункт Вставить внешнюю обработку.
После этого программа попросит выбрать файл внешней обработки с диска. После выбора файла, в конце списка должна появится наша новая обработка — script_КорректировкаДвижений.
Готовую обработку Корректировка движений можно скачать ниже.
Проверяем.
Сохраняем изменения. Для этого нажимаем на клавиатуре F7 и соглашаемся со всеми предложениями программы.
Запускаем программу в пользовательском режиме, переходим в список документов Платежное поручение исходящее.
Нажимаем в списке на кнопку ДтКт и … Вуаля.
Кроме возможности ручной корректировки движений, в списке появилась новая колонка, в которой отображается специальная пиктограмма, если движения документа были отредактированы вручную.
Откроем документ и тоже проверим работоспособность нового механизма.
После этого попытаемся провести документ. Если движения были отредактированы вручную, программа должна выдать сообщение об ошибке: Движения документа исправлены вручную!
При отмене проведения признак ручной корректировки будет снят, а все движения документа удалены.
Содержание:
1. Корректировка движений и проводок документа в 1С 8.3
2. Определение ручных корректировок в конфигурации системы 1С: Бухгалтерия 8.3
1. Корректировка движений и проводок документа в 1С 8.3
В статье речь пойдёт о том, как быстро редактировать движения по регистрам и проводки внутри уже проведённого документа в конфигурации «1С: Бухгалтерия 8.3», а также о том, как распознавать ручные корректировки внутри данной конфигурации.
Отражение хозяйственных операций в конфигурации «1С: Бухгалтерия 8.3» происходит при помощи ввода документации, которая совпадает с первичной. В отдельных случаях, нужно поменять уже готовые проводки и регистры движения документов 1С, для этого, следует придерживаться такого алгоритма:
1. Выбираем документ, который уже был проведён из перечня, как показано на скриншоте:
Продажи
2. Кликаем на кнопку, которая отвечает за движения документа в 1С и смотрим, как он проводился, как на примере ниже:
Движения документа. Реализация
Здесь, на примере, мы видим, как был реализован некий объект, который относим к малоценному имуществу, он учтён на счёте, который является забалансовым – «МЦ.04» в 1С 8.3. Однако, можно заметить, что внутри документа нет возможности вносить данные о партии материалов и о работнике, который ответственен за данное имущество. Получаем, что субконто для проводки счёта «МЦ.04» в 1С 8.3 пусто, не заполнено.
3. Далее нам нужно поставить «галочку» около пункта «Ручная корректировка», при помощи которого можно менять движения нашего документа, далее – проводим коррекцию необходимых данных, как показано далее:

Движения документа. Реализация
Здесь мы заполнили аналитику для счёта в первой проводке.
4. В случае, если нужно внести ещё одну проводку, то кликаем по кнопке «Добавить». Также прописываем счёт кредита и дебета, а также их аналитику и суммы в учёте бухгалтерии – внутри столбца «Суммы», аналогично для 1С 8.3 бухгалтерия налогового учёта, если внутри плана счетов есть данный признак;
5. Чтобы внести правки в движения относительно регистров накоплений в 1С 8.3 и сведений – кликаем на нужную вкладку, которая соотносится с необходимым регистром. Если нужно – можно вручную создать недостающие закладки, для этого:
· Кликаем на «Ещё», где, в выпадающем списке, избираем кнопку «Выбор регистров»;
· Появится форма «Настройка отображения регистров», где нужно проставить «галочки» около нужных регистров, как демонстрируется на скриншоте с примером ниже:
Настройка отображения регистров
· Нажимаем на «ОК» и в документе отобразятся те вкладки, которые соответствуют регистрам;
· Вносим данные по движениям для каждой закладки.
6. Кликаем по «Записать и закрыть».
2. Определение ручных корректировок в конфигурации системы 1С: Бухгалтерия 8.3
Лучше, для корректного ведения бухгалтерского учёта в 1С, не создавать ручных корректировок, однако, если они, всё-таки, есть, то важно для закрытия месяца, их помнить.
Запускаем «Журнал операций», кликаем на «Ещё» и выбираем «Настроить список», как демонстрируется на скриншоте ниже:
Настроить список
Далее выбираем кнопку «Отбор» и в левом списке избираем пункт «Ручные корректировки», как можно увидеть в примере далее:
Ручная корректировка
Выбираем значение «Да» и кликаем «Завершить редактирование», после этого, конфигурация «1С: Бухгалтерия 8.3» выведет перечень со всеми ручными корректировками:
Журнал операций
В статье было описано, как создавать ручные корректировки, для уже проведённого документа, в котором нужно править движения по регистрам или проводки документов в 1С 8.3, а также то, как быстро выявлять общий перечень всех ручных корректировок внутри конфигурации «1С: Бухгалтерия 8.3».
Специалист компании «Кодерлайн»
Айдар Фархутдинов
Показывать по
10
20
40
сообщений
Новая тема
Ответить
Елена_В
Дата регистрации: 26.10.2007
Сообщений: 611
7.7, релиз 027, конфа Бухгалтерский учёт.<br>В справочник «Контрагенты» добавила периодический реквизит, изменяется врчуную (галка Изменять документами не стоит). В режиме Предприятие значения сохраняются только из формы элемента, а вруную (по F5) не удаётся ни отредактировать, ни записать новое значение, при вводе новой строки если указать дату и пустое значение, то строка сохраняется, но если указать дату и заполнить значение реквизита — происходит возврат.<br>Не найду, где в отладчике я могу увидеть, что происходит в момент записи значения периодического реквизита из окна «История»
Елена_В
Дата регистрации: 26.10.2007
Сообщений: 611
Новый реквизит (периодический) тоже имеет тип «Контрагенты».<br>Заметила, что по F5 я могу записать новую строку с заполненным значением, но при этом могу выбрать только того контрагента, для которого нажала F5, а мне нужно выбрать именно другого
Thorvardr
Дата регистрации: 25.02.2005
Сообщений: 3082
Это от того, что окно «истории» имеет связку с формой списка «Контрагентов». Как только вы пытаетесь указать значение периодического реквизита, которое имеет тоже вид «Контрагенты», открывается окно выбора значения и окно истории тут же обновляется данными, которые связаны с текущим элементом в новом открывшемся окне. Такое поведение обусловлено движком и, мне кажется, обойти не получится и именно «через F5» редактирование будет невозможным.
Показывать по
10
20
40
сообщений
На практике каждый второй бухгалтер прибегал к ручному редактированию проводок в проведенном документе или к созданию документа «Операция, введенная вручную». Так делают, когда невозможно отразить операцию в автоматическом режиме в программе «1С» или отсутствует нужный документ для ведения учета – и это рискованно.
Гораздо проще и удобнее внести исправления вручную, чем искать по всей программе специальный документ и тратить время на поиск информации по его заполнению. А после его проведения гадать: правильно ли он был заполнен, нужные ли проводки по нему сформированы программой. В то время как ручное редактирование позволяет:
- Отредактировать сформированную проводку в документе.
- Удалить/добавить нужную проводку в документе.
- Добавить в документ собственные проводки.
- Скорректировать сумму в проводках документа (в случае с исправлением суммы в проводках документа используется документ «Корректировка поступления» или «Реализации», в зависимости от ситуации).
- Закрыть счета, которые не всегда получается закрыть автоматически, например, авансы по счетам 60 и 62.
Основным способом отражения хозяйственных операций в программе является ввод документов конфигурации, соответствующих первичным бухгалтерским документам. В некоторых случаях по отдельным хозяйственным операциям требуется изменить сформированные при проведении документа проводки и/или движения по регистрам.
Данные о введенных операциях хранятся не только на счетах учета, но и в специальных регистрах, которые нужны программе для корректной работы. Дублирование данных необходимо для формирования отчетности.
Например, бухгалтер решил отразить хозяйственную операцию вручную. В результате получилась «красивая» оборотно-сальдовая ведомость (ОСВ), визуально все на своих местах.
Что может пойти не так? Сдача отчетности. Когда бухгалтер сформирует отчетность, то сможет увидеть результаты таких операций, введенных вручную. Данные, внесенные вручную, изменятся, а информация в регистрах останется прежней. Один из вариантов негативного развития: данные оборотов на счетах бухгалтерского учета будут отличатся от данных в регламентированной отчетности, которая подается в контролирующие органы (отчетность в программе формируется на основе регистров базы, проводки практически не играют роли в формировании отчетности).
Именно поэтому есть список хозяйственных операций, которые не рекомендуется оформлять с помощью ручных операций:
- операции по счетам учета ТМЦ (товарно-материальным ценностям);
- операции по счетам учета расчетов с контрагентами;
- операции по счетам НДС;
- начисление налогов – земельный налог на имущество, транспортный и т.д.
Почему не стоит использовать ручные операции в этих случаях?
Для данных операций есть документы типовой конфигурации, которые сформируют правильное движение регистров бухгалтерского учета. В то время как ручные операции статичны – фиксируются в том виде, в котором они были записаны. Как мы внесли данные, так они и будут отражаться в бухгалтерском учете, программа не будет вносить в них изменения при перепроведении документов (не важно – групповом или автоматическом). Любые изменения документа, сделанные после ручной корректировки проводок, не влияют на отражение документа в регламентированном учете. В дальнейшем это потребует ручного контроля за актуализацией проводок в документах.
Рассмотрим механизм корректировки вручную на примере движений в документе «Реализация (акт, накладная)»:
- Открыть проведенный документ (например, реализация (акты, накладные)).
- По кнопке ДтКт открыть форму «Движения документа». Необходимо проверить проводки документа. Если в документе отсутствует техническая возможность добавления информации, например, о партии материалов в эксплуатации, то ручная корректировка в данном случае необходима и следует внести соответствующие субконто в проводке.
- Установить флажок «Ручная корректировка(разрешает редактирование движений документа)» и заполнить аналитику по счету, в который необходимо внести исправления.
- Если необходимо добавить новую проводку, то используем кнопку «Добавить». Указываем счет дебета и счет кредита с аналитикой к ним, сумму в бухгалтерском учете (колонка «Сумма») и суммы в налоговом учете отдельно к счетам учета по дебету и кредиту (колонки «Сумма Дт» и «Сумма Кт»), если по этим счетам в плане счетов установлен признак ведения налогового учета.
Важно соблюдение принципа БУ = НУ + ПР + ВР по балансовым счетам (значение в колонке «Сумма» должно совпадать с суммой значений по строкам «НУ», «ПР» и «ВР» в колонках «Сумма Дт» и «Сумма Кт»).
- Если необходимо скорректировать движения по регистрам документа, то переходим на соответствующую регистру закладку и производим корректировку.
- Нажимаем кнопку «Записать и закрыть».
- Для отмены ручной корректировке необходимо снять флажок «Ручная корректировка (разрешает редактирование движений документа)», затем нажать на кнопку «Записать и закрыть», после чего ответить «Да» на сообщение: «Ручная корректировка движений документа отменена. Восстановить движения, сформированные автоматически?».
Перед началом ручной корректировки помните:
- Использование ручной корректировки рекомендуется только в крайних случаях, когда отразить хозяйственную операцию автоматически с помощью документа конфигурации (например, нет нужного документа) не представляется возможным. В данном случае используется операция, введенная вручную.
- Ручная корректировка отключает автоматическое формирование проводок и движений по регистрам документа. Программа фиксирует проводки и движение по регистрам в том виде, в котором они были занесены и сохранены пользователем. В дальнейшем любое изменение документа (или перепроведение) не влияют на отражение документа в учете.
От ручного редактирования проводок в проведенном документе может зависеть правильность ведения учета в программе. Такие операции требуют особого внимания и ответственности за внесенные изменения. Перед внесением корректировки необходимо проанализировать ситуацию, продумать какие документы в автоматическом режиме смогут сформировать нужные проводки и движения регистров учета.

















