Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 21:44
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Задача №4. Решение и обсуждение.  (Прочитано 4524 раз)

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

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Приветствую всех.

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

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

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

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

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


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
141 Сообщений
AIFrame
73 Сообщений
ilyay ilyay
65 Сообщений
alex0402
52 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
31 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 331
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal