Как ИспользоватьСубконто
или почему операция - "любимый" инструмент бухгалтера.
ФормаОперации. ИспользоватьСубконто(). Живет здесь такой метод.
"Это ж бухгалтерские итоги!" - воскликнет каждый первый аттестованный специалист, и будет прав. Что делает сей глагол в форме операции? А про ИспользоватьВалюту Вы что-нибудь слыхали?
А назначение ИспользоватьСубконто таково - задать для определенных видов субконто значения по умолчанию. Так неприметно ПриОткрытии ЛюдиВЖёлтом установили использовать по умолчанию, кроме ОсновнойВалюты, ОсновнойСклад и ОсновнойБанковскийСчет, ОсновноеПодразделение, ОсновнойВариантРеализации и ОсновнойВидДеятельности. Хотя затем передумали, и три последних зачем-то закрасили зеленым цветом. Быть может, Вы найдете у себя в тексте несколько другие виды, однако все они схожи как собаки - образцы для всех хранятся в сходноименных константах.
Итак, щелкнул пальцем счет 41.Х - пожалуйте Вам Ваше МестоХранения, счет 51 - вот Ваш РасчетныйСчет, Ваше Высокоблагородие. Согласитесь, это приятно. И полезно. Мы то знаем, что заполнение реквизитов значениями по умолчанию есть не что иное как один из методов оптимизации доступа к базам данных, путем снижения количества обращений.
Щелк счет 41.1 - "Основной склад", 41.2 - "Основной склад", 41.3 - "Основной склад", 43, 10.1, 10.3, 10.5 ... - не поверишь, тоже "Основной склад".
Помечтаем - 41.1 - "Оптовая база", 41.2 - "Магазин", 43 - "Склад готовой продукции", 10.1 - "Склад сырья", 10.3 - "Mersedes S500"... Кстати, а где ОсновноеТопливо, ОсновнойВидПлатежаВБюджет и ОсновноеОсновноеСредство? И почему, наконец, зеленым цветом ОсновноеПодразделение и сотоварищи?
Ответа нет, перед нами очередное недоразумение.
Именно так - не-до-разумение.
Предлагаю более простое и вместе куда более мощное решение:
Дополнительные реквизиты счета: ВыбВалюта, ВыбСубконто1, ВыбСубконто2, ВыбСубконто3.
Картинка №1
Редактировать счет настоятельно рекомендую только диалоге.
Картинка №2
Остальное - дело техники - ПриВыбореСчета установить значения субконто. В качестве значений по умолчанию возможны и группы справочников. Почему нет? В этом случае слудует ПриНачалеВыбораЗначения ИспользоватьРодителя, и форма списка справочника откроется в нужном месте. Еще не впечатляет?
В
//
Функция глВалютаСчетаПоУмолчанию(Счет) Экспорт
Если ПустоеЗначение(Счет) = 1 Тогда
Возврат "";
ИначеЕсли ПустоеЗначение(Счет.ВыбВалюта) = 0 Тогда
Возврат Счет.ВыбВалюта;
ИначеЕсли ПустоеЗначение(Счет.Родитель()) = 0 Тогда
Возврат глВалютаСчетаПоУмолчанию(Счет.Родитель())
Иначе
Возврат "";
КонецЕсли;
КонецФункции
//
Функция глСубконтоСчетаПоУмолчанию(Счет, НомерСубконто) Экспорт
Перем Субконто;
Если ПустоеЗначение(Счет) = 1 Тогда
Возврат "";
КонецЕсли;
Субконто = Счет.ПолучитьАтрибут("ВыбСубконто" + НомерСубконто);
Если ПустоеЗначение(Субконто) = 0 Тогда
Возврат Субконто;
ИначеЕсли ПустоеЗначение(Счет.Родитель()) = 0 Тогда
Возврат глСубконтоСчетаПоУмолчанию(Счет.Родитель(), НомерСубконто)
Иначе
Возврат "";
КонецЕсли;
КонецФункции
И нет никакой необходимости настраивать каждый субсчет, наши методы глВалютаСчетаПоУмолчанию() и глСубконтоСчетаПоУмолчанию() умеют работать рекурсивно. Как, как? Так, так, вернуть значение по умолчанию, общее для всех субсчетов субсчета.
Таким образом, мы создали широкое поле для работы самому дотошному бухгалтеру. И избавились от него на какое-то время. Тебе, специалисту, тоже работы подвалило. Мы то знаем, что заполнение реквизитов значениями по умолчанию есть не что иное как один из методов оптимизации доступа к базам данных, путем снижения количества обращений.
01.03.2005, 28.10.2009, 05.03.2012