Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 19:51

Задача №4. Решение и обсуждение.

Автор progmikon, 27 фев 2011, 20:33

0 Пользователей и 1 гость просматривают эту тему.

progmikon

Приветствую всех.

Предлагаю разобрать решение четвертой задачи. (https://forum-baza.ru/index.php?topic=5775.0)
Оно безусловно не единственно возможное, но такое решение выбрал я.

Адекватная критика, замечания, дополнения - приветствуются. Пишите или в личку, или просто оставляйте сообщения в этой теме.

Итак, начнем.
Как обычно, продублирую тут условие задачи:
"Главный бухгалтер поставил задачу создать на счете 70 (Расчеты с персоналом по оплате труда) бухгалтерского плана счетов несколько субсчетов. Не будем обсуждать необходимость этого требования и его целесообразность, а предлагаю обсудить, как с наименьшими проблемами выполнить эту задачу.

Примечание 1: на момент постановки задачи, конфигурация была типовой.
Примечание 2: в ряде документов в обработке проведения, обращение к 70 счету происходит в явном виде, как к предопределенному."

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

Процедура Замена70Счета(Источник, Отказ, РежимПроведения) Экспорт
// Вставить содержимое обработчика.
КонецПроцедуры

Первый параметр "Источник" - это и есть наш "ДокументОбъект.ПлатежноеПоручениеИсходящее"
Сначала нам нужно получить движения этого документа, а затем, выполнить замену. В случае, если аналитика предопределенного счета и нового субсчета совпадает, то код (для бухучета) в простейшем случае (без проверок на условия выбора того или иного нового субсчета) будет примерно следующий:

Процедура Замена70Счета(Источник, Отказ, РежимПроведения) Экспорт
ПроводкиБУ = Источник.Движения.Хозрасчетный;
Для Каждого Проводки Из ПроводкиБУ Цикл
Если Проводки.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда Тогда
Проводки.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("70.01");
КонецЕсли;
Если Проводки.СчетКт = ПланыСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда Тогда
Проводки.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("70.01");
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Как всегда, домашнее задание - найти документы, аналогичные ППИ, в процедуре "ОбработкаПроведения" которых есть обращение к 70 счету как к предопределенному.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск