Типовые операции в 1С: БГУ 2. Часть 4. Заключение

Публикация № 1514920 14.09.21

Разработка - Конфигурирование 1С - Механизмы бухгалтерского учета

В данной статье автор расскажет, что такое типовые операции в конфигурации бухгалтерии для госсектора, установит стандарты качества написания типовых операций. Часть 4 "Заключение". Завершаем типовую операцию из ТЗ, изучаем простые условия, немного касаемся сложных условий, прикасаемся к булевой алгебре, изучаем функцию ЗНАЧЕНИЕ() и прочие прикладные функции как примеры, задаем стандарты типовой операции.

Хотелось бы начать с того, чтобы мы вместе с вами реализовали пример типовой операции, который начали в самом начале, и уже перешли к описанию функций. 

 

 

Те, кто уже реализовывал подобные типовые - наверняка уже это знают, но для тех, кто только разбирается, я бы хотел подчеркнуть один узкий момент. Обратите внимание, что в списке операций уже есть 2 операции по денежным обязательствам. Значит ли это, что они будут дублироваться? Где программа возьмет данные для их формирования?

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

Ранее, действительно, денежные обязательства формировались автоматически. Бралась сумма начисления, кое-как вычитался аванс, и все эти операции мы не видели, и любые корректировки лепились самым отвратным способом, а именно правились проводки вручную в документе (снималась позиция сформировано автоматически и правились руками). Так как разработчики все-же иногда думают о тех, кто на местах, они реализовали табличную часть в самом документе (можете посмотреть в поступлении, есть вкладка "Денежные обязательства", которая выглядит подозрительно недоделанной. В табличной части мы можем с вами проставить КФО, КПС, КОСГУ, Сумму и насладиться полем под названием "Заглушка", которое сделано из-за определенной специфики кривизны самой платформы 1С. Так вот, это и есть новая табличная часть, которая стала частью документа, то-бишь теперь источник не является дополнительным (формирующимся во внешней среде). И благодаря данному источнику (чтобы не грохнуть старые операции, появилась новая операция без пометки (устарела). Она полностью берется из данной табличной части, что позволяет нам контролировать КПС, КОСГУ и КЭК. Но в ряд не профессионализма методологов 1С, мы не можем выбирать в данной таблице раздел лицевого счета под определенные КФО, реализацией чего мы собственно сейчас и займемся.

 

 

Для начала определимся, что нас не устраивает во всей операции. Да в принципе все устраивает, но хотелось бы, чтобы раздел подбирался автоматически для каждого КФО в табличной части. То бишь, нам нужно с вами найти поле с разделом лицевого счета и изменить его. Смотрим первым делом в операцию, которая формируется сейчас. Раздел лицевого счета есть и в дебете, и в кредите. Те, кто читали прошлую статью, уже знают, что их формулы находятся на разных вкладках, а значит, нам нужно будет изменить ее и там, и там. 

Итак, для начала определимся с логикой. В данном случае, мне нужно найти необходимую операцию, через которую я буду ее реализовывать. Мне очень нравится операция "РазделЛицевогоСчетаПоКФО", которая даст мне необходимый раздел л/с по КФО (логично, верно?). У меня были учреждения, в которых был 1 лицевой с двумя разделами под каждый КФО, для чего данная операция отлично подходит. Также бухгалтера немного нервничают, когда видят приписки к разделам лицевых счетов в виде (06), (02) и т.п. И если 02 - хоть как то похоже на предпринимательскую деятельность, то 06 как средства юридических лиц - слабо похожа на КФО 4 (коим и является по методологии). Делая операцию через лицевой счет в доп реквизитах мы очень хорошо экономим и на времени и на свободном месте в интерфейсе.

Так как я изначально хотел делать через данную операцию, я и создал 2 реквизита лицевых счетов (Помните, я сказал, что в дальнейшем объясню? Вот так все хитро).

 


Операция "РазделЛицевогоСчетаПоКФО" принимает 2 аргумента. Для тех, кто плохо понимает программирование, объясняю. мы должны предоставить этой функции что она хочет, чтобы она автоматически нам отдала, что нам нужно. В данном случае это "(<ЛицевойСчет>, <КФО>)". Сразу хочу вам сказать, что такое символы <>. На самом деле это своего рода программистские кавычки, чтобы вы понимали, что ей нужно скормить. В данном случае мы должны разместить наш лицевой счет до первой запятой, и КФО после нее. Сейчас остановились и перестали переключать окна и пробовать писать текстом номера ваших лицевых и КФО. Программа не хочет вашего текста (если вы до сих пор так думаете, вернитесь, в конце третьей части написано, что вам нужно прочитать), она хочет объекты (а если нас читают программисты, то вы уже поняли, что в <> пишется тип объекта, который программа хочет на вход). В данном случае нам нужно будет где-то найти КФО и лицевой счет.

 

 

Вот и они. Теперь, когда мы их нашли, просто перетащим их в поле формулы. И теперь вроде как все хорошо, но мы использовали только один вариант, в данном случае, он может быть универсальным. Какой бы вы лицевой не поставили в реквизит, программа найдет в нем раздел и покажет вам. Но как сделать так, чтобы программа сама ВЫБИРАЛА и ставила нам то, что требуется? Верно, использовать конструкцию выборы (если вы читали то, что я просил прочесть в статье 3 в самом низу, вы наверняка ее видели, но могли не понять, как это работает. Разберем на примере ниже (аналог if-then-else).

 

ВЫБОР
    КОГДА СтрокаТаблицы.КФО = ЗНАЧЕНИЕ(Перечисление.КВД.Внебюджет)
        ТОГДА БухгалтерскиеОперации.РазделЛицевогоСчетаПоКФО(
            ДополнительныеРеквизиты.ЛицевойСчетДляКфо2#ЗначениеЗаполнено/Прервать, 
            СтрокаТаблицы.КФО) 
    ИНАЧЕ БухгалтерскиеОперации.РазделЛицевогоСчетаПоКФО(
            ДополнительныеРеквизиты.ЛицевойСчетДляКфо4#ЗначениеЗаполнено/Прервать, 
            СтрокаТаблицы.КФО) 
КОНЕЦ

 

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

Далее, поанализируем. После слова КОГДА у нас идет условие. То бишь, когда условие будет исполняться - будет происходить то, что идет после ключевого слова ТОГДА. Слово ИНАЧЕ указывает на то, что будет происходить в случае, когда не выполнится то условие, которое написано после слова КОГДА. В данном случае мы можем с вами это представить на чистом русском языке (хозрасчетники, КЫШ отсюда! вашего мнения по поводу наших страшных аббревиатур никто не спрашивал! мы мы любим наши КОСГУ, КПС, КФО, правда же? ведь правда любим? ;) ) 

На русском языке это звучит так:

В поле формула раздела лицевого счета мы просим нашу программу осуществить выбор. КОГДА в строке таблицы "Денежные обязательства" (поскольку она сейчас источник) КФО будет 2, ТОГДА программа вычислит раздел лицевого счета по КФО взяв наш дополнительный реквизит и просканирует его используя КФО из строки таблицы. ИНАЧЕ, если КФО не будет 2, тогда программа вычислит его, взяв лицевой счет из другого дополнительного реквизита, и вычислит из него. КОНЕЦ выбора программы.

В принципе, уже все понятно, но данная операция может быть не совсем емкой, потому что у нас с вами могут быть разные КФО, разные реквизиты лицевых счетов (которые мы можем добавлять до бесконечности), как же нам быть в таких ситуациях? Все очень просто, мы немного иначе интерпретируем эту же конструкцию (сделаем аналог switch case):

 

 

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

 

 

Вот в принципе и все. Таким образом мы с вами реализовали типовую операцию с автоматическим выбором раздела лицевого счета. Теперь же пойдут формулы с описанием как они работают и что значат. Если я чего то не описал выше, скорее всего оно будет здесь.

Начну с того, что в конструкции выше, вы видели, как я определяю КФО через функцию ЗНАЧЕНИЕ. Как и написано в помощнике языка СКД, вы можете доставать с помощью этой функции любой ПРЕДОПРЕДЕЛЕННЫЙ объект или ПЕРЕЧИСЛЕНИЕ в программе. Для этого достаточно будет открыть вашу конфигурацию в конфигураторе и посмотреть, есть ли такое там. Самые простые примеры реализации:

 

 

Пример по зарплатным проводкам вы можете посмотреть в операции "Отражение з/п в учете" в своей конфигурации. То-есть, синтаксис использования функции ЗНАЧЕНИЕ() - написать внутри полный путь до элемента ПЕРЕЧИСЛЕНИЯ или ПРЕДОПРЕДЕЛЕННОГО элемента справочника. 

 

 

Примеры:

Для перечислений это будет ЗНАЧЕНИЕ(Перечисление.КВД.Внебюджет)

Для справочников это будет ЗНАЧЕНИЕ(Справочник.ВидыОперацийОтраженияЗарплаты.ЗП_Начисление_Зарплата)

С этим разобрались. Далее, мы должны понимать что такое Булево. Понятно, что это либо 1 - либо 0, либо ИСТИНА - либо ЛОЖЬ. Понимание механизма действия данных Булево, даст нам возможность писать красивые логические конструкции не усложняя интерфейс. Где может использоваться Булево? Ну например в конструкции ВЫБОР-КОГДА-ТОГДА, именно Булево используется в ключевом слове КОГДА, то-есть, когда мы сравниваем с вами равно ли КФО из табличной части нашему значению, оно возвращает либо ИСТИНА либо ЛОЖЬ. Таким образом программа понимает когда условие исполняется, а когда нет. Например, если мы создадим реквизит булево в дополнительных реквизитах и назовем его "Принимать бюджетные обязательства" и поставим в Условие проводки: 

 

 

Тогда пока галочка не будет ИСТИНА (то-бишь не будет поставлена) операция не будет сделана. Это актуально например в тех случаях, когда бухгалтера просят вас навешивать лишний функционал на проводки (которые формируются всегда одинаково но с мелкими отличиями). Например для того, чтобы у многих учреждений схлопывались счета расчетов, мы делали галочки, которые при нажатии позволяли менять контрагент и договор (то-бишь учреждение как отправляло в банк - так и отправляет, а в проводке это заменяется на субконто "Сотрудники"). Таким образом мы всегда видим чистое сальдо в разрезе и не схлопываем пересортицу как сумасшедшие. Методологическое решение данного вопроса - бить бешеное количество лицевых счетов - что по мне так сомнительно.

Давайте в продолжении темы про Булево поговорим о логических операторах. Рассмотрим простые И, ИЛИ, НЕ. Заниматься булевой алгеброй не будем. Опишу в кратце. Эти операторы дают возможность строить сложные условия. Сложные не потому что трудно, а потому что в них будет больше одного значения ИСТИНА ИЛИ ЛОЖЬ. Опишу вам мини табличку с этими операторами:

ИСТИНА И ИСТИНА = ИСТИНА
ИСТИНА И ЛОЖЬ = ЛОЖЬ
ЛОЖЬ И ИСТИНА = ЛОЖЬ
ЛОЖЬ И ЛОЖЬ = ЛОЖЬ

Для чего нужен этот оператор? Например для конструкции когда должно одновременно соблюдаться 2 условия. Например:

ВЫБОР
    КОГДА БухгалтерскиеОперации.СчетПоКоду("502.11") = ДополнительныеРеквизиты.СчетДО И ДополнительныеРеквизиты.ПринятьБО
        ТОГДА....

        
И так далее. То есть если одно из условий не выполняется в нашем сложном условии - сложное условие не выполняется полностью

ИСТИНА ИЛИ ИСТИНА = ИСТИНА
ИСТИНА ИЛИ ЛОЖЬ = ИСТИНА
ЛОЖЬ ИЛИ ИСТИНА = ИСТИНА
ЛОЖЬ ИЛИ ЛОЖЬ = ЛОЖЬ

Этот оператор нужен как раз наоборот, если какое -либо из условий в сложном условии выполняется - выполняется все сложное условие. Пример рисовать не буду, должно быть понятно. И последнее

НЕ ИСТИНА = ЛОЖЬ
НЕ ЛОЖЬ = ИСТИНА

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

НЕ ДополнительныеРеквизиты.НеФормироватьПроводкиНалоговогоУчета

Когда галочка будет отжата (давать ЛОЖЬ) программа будет инвертировать значение и давать ИСТИНУ (проводка будет формироваться).

Если в перспективе вы будете творить очень сложные условия, то должны помнить, что вы можете их группировать в скобочки. например

(БухгалтерскиеОперации.СчетПоКоду("502.11") = ДополнительныеРеквизиты.СчетДО 
И ДополнительныеРеквизиты.ПринятьБО) 
ИЛИ НЕ ДополнительныеРеквизиты.НеФормироватьПроводкиНалоговогоУчета

То есть либо то, что в скобках исполнится, либо то, что не в скобках.

Если сейчас, вам стало очень тяжело, и вы думаете, что это очень сложно - вам стоит почитать-посмотреть что-то на эту тему. В интернете полно видеоуроков по подобному в языке 1С, в т.ч. есть мои видеоуроки по типовым операциям. Попробуйте их найти и посмотреть. Вдруг станет понятнее.

Поговорим теперь о строках. Как и в обычном программировании, мы можем складывать (соединять строки). Для чего нам это может понадобиться? Например, давайте сделаем 2 операции, которые формируют КОСГУ из счета и наоборот. Если что, для этого есть отдельные функции, но это в рамках примера:

БухгалтерскиеОперации.СчетПоКоду("302." + ПОДСТРОКА(СтрокаТаблицы.КЭК.Код, 2, 2))

Подобная строка даст нам счет расчетов по КОСГУ. Например 302.11 из 211, то-есть "302." + "11". Заметьте, что я подставил не сам объект КЭК, а поле код. В некоторых случаях может быть наименование. О функции подстрока почитаете в мануале.

БухгалтерскиеОперации.КЭКПоКоду("2" + ПОДСТРОКА(СтрокаТаблицы.СчетУчета.Код, 5, 2))

Операция наоборот. Даст КОСГУ 211 из 302.11. Из данных "2" + "11".

Аналоги данных операций:

 

 

Данные решения уже рабочие, вы можете их копировать и использовать у себя в типовых операциях. В принципе с помощью них можно исправить многие косяки в типовых операциях или написать свои. Функции я думаю постепенно подобью в отдельную статью. Думаю не имеет смысла перекопировать все операции сюда, но самые интересные воплощения думаю напишу еще.

А теперь, в завершении нашего с вами бесконечного карнавала типовых, я бы хотел написать стандартны, по которым я бы хотел, чтобы писались типовые операции, в не зависимости от сложности и нишевости ситуаций. Мое мнение, что когда типовые будут писаться по этому стандарту - мы с вами перейдем в новую эру бюджетной бухгалтерии - это точно.

Стандарт написания типовых операций

1) Не по каждому чиху бухгалтерского учета стоит делать типовую. Если вы собрались писать типовую операцию - проверьте функционал конфигурации (очень часто, она вас приятно удивит)

2) Планируйте написание своей типовой операции. Если вы себе плохо представляете процесс и вам сложно определиться - выпишите для начала на бумаге все входные данные, найдите объекты, которые позволят вам реализовать задуманное, и только после этого занимайтесь написанием.

3) Не меняйте структуру плана счетов, который поставляется в конфигурации. При хорошем знании функционала вы сможете вытащить практически любую информацию из программы. Если же все еще не отпала необходимость в этом и вы считаете себя продвинутым пользователем - побеседуйте с другими пользователями (а лучше обратитесь к тем, кто еще увереннее вас), скорее всего, ваша потребность не нова и не требует таких кардинальных решений

4) Не добавляйте лишние табличные части (возможно, об этом напишу статью). Да, такой функционал есть, но помните, что данные табличные части вы сможете удалить только если в них не будет никаких данных. Скрыть вы их также не сможете. Если через неделю-месяц-год ваши бухгалтера скажут "УБЕРИТЕ УДАЛИТЕ НАМ МЕШАЕТ" вам придется им объяснять, что с этой красотой им сидеть до обрезки базы точно. И все ваши благие намерения будут огрызками свисать с и так перегруженных форм документов.

5) Не добавляйте дополнительные реквизиты без необходимости. Изучите функции типовых операций, реквизиты документа. Возможно, вы что-то упустили? Если вы считаете, что вы нашли супер лазейку, и вы сможете сделать "СУПЕР НАСТРАИВАЕМУЮ ОПЕРАЦИЮ С МИЛЛИОНОМ ДОП РЕКВИЗИТОВ НА КАЖДЫЙ СЛУЧАЙ, ОЙ МАРИВАННА, ВАМ РЕКВИЗИТ ПОД КРУЖКУ ЧАЯ НАДО? ЩА ЗАБУБЕНИМ!" - забудьте. Лучше делать емкие тематические операции с минимумом функционала бухгалтера, чем давать ему 100 реквизитов и 200 галочек, рассказывая, какой вы гениальный программист и ей больше не нужна ни одна операция из списка. Задача типовой - не показать, какой вы гениальный, а упростить труд бухгалтера.

6) Я понимаю, что вы скорее всего очень занятые люди, которые разрываются на работе. Пожалуйста, выделите время, изучите то, как написаны операции в программе. Посмотрите на условное форматирование и емкость операций. Даже если вы нашли кривые операции - напишите себе об этом в послужной список и продолжайте изучать. Спецы 1С, разработавшие конфигурацию, очень красиво писали типовые операции и рисовали их интерфейсы. У них есть чему поучиться.

7) Если вы все-таки решили нарисовать дополнительные реквизиты - распихайте их по группам и сделайте максимально емкий интерфейс. Старайтесь, чтобы даже в ситуации, когда у каждого вашего бухгалтера монитор 52 дюйма и разрешением миллион на триллион пикселей, даже в такой ситуации ваш интерфейс должен быть очень компактным и сжатым в уголке. Таким образом, когда у вас появится необходимость подключить кого-то через браузер из дома (где таких мониторов нет) или подключить нового человека со старым монитором с лучевой трубкой - человек мог работать спокойно и эффективно.

8) Если вы добавляете новые операции - подумайте, может, их нужно формировать блоками-группами. Распределите операции по порядку. Если у вас вперемешку идут операции обязательств и материальных запасов - вам стоит задуматься о группировке.

9) Проанализируйте источники, откуда вы будете рисовать операцию. Возможно, какой то источник будет для вас удобнее, чем тот, который даже выбрали специалисты из 1С (вдруг вы безумный гений и реализуете что-то эдакое). Такое бывает редко, но бывает.

10) Не создавайте реквизитов под объекты, значение которых вы можете вытянуть из конфигурации функцией (ЗНАЧЕНИЕ). Изучите конфигуратор. Вдруг там есть то, что вы ищете.

11) В операциях, все реквизиты должны получаться из формулы или дополнительных реквизитов. Заклинаю вас никогда не выбирать значения реквизитов вручную в типовой операции. Исключение может составлять только типовая операция, написанная для документа "Операция бухгалтерская", и то, при должном мастерстве вы сможете этого избежать.

12) Старайтесь использовать все разделы Операндов формул, которые мы с вами рассмотрели. Чем осознаннее вы творите - тем более отказоустойчивые операции у вас появляются.

13) Не забывайте про условия и функционалы галочек булево. Попробуйте потренироваться и сделать пару операций из этой статьи. Получилось? Измените пару реквизитов на свои. Попробуйте изменить другие типовые операции из конфигурации. Вспомните, что было для вас самым сложным, и попытайтесь повторить по правилам, данным здесь. 

14) Старайтесь не использовать агрегатные функции. За всю историю своей работы я использовал их сугубо пару раз и не скажу, что пожалел, но необходимости острой в этом не было.

15) Если вы копируете типовые, рисуете им аналоги в других документах, не знаете, что такое характеристика движения - ОЧЕНЬ ТЩАТЕЛЬНО изучайте те проводки, которые уже есть в программе. Не проставив характеристику движения в определенных проводках, вы рискуете не собрать отчетность в конце периода. Виноватым будете вы, даже если ваши бухгалтера не поймут и вы отшутитесь, мол "Ой ета 1С тупая, разрабы идиоты". Пожалуйста, проверяйте любые аналогичные проводки, которые уже есть в конфигурации.

16) После того, как вы написали проводку - обязательно проверяйте ее, проверяйте реквизиты, проверяйте проведение. Каждая ячеечка субконто счета - должна быть заполнена в соответствии с планом счетов. Проверяйте КОСГУ, КПС. Соответствие КРБ и КДБ. Наличие корректной суммы и обязательно количество в проводках (постоянно вылетает из головы, потому что сумма одна на проводку, а количество разное и в ДТ и в КТ).

17) Не забывайте заполнять первичные документы и описание проводки. Помните, вы сбежите, а бухгалтер будет печатать журналы операций с пустыми графами.

18) Не забывайте писать комментарии к типовой операции, если вы хотите отметить что-то важное в самой операции - используйте также поле условие с такой же формой заполнения, как и в условии типовой. Оставляйте комментарии себе и тем, кто будет после вас.

19) Никогда не снимайте с поддержки оригинальные типовые операции (это ваша точка отсчета и точка сравнения при обновлении). Лучше сделайте свою рядом, даже если там минимальные изменения. Это поможет вам держать вашу типовую в актуальном состоянии, ссылаясь на постоянно обновляемый оригинал. Нет причин редактировать ее, и не будет.

20) Пишите простые и емкие наименования типовой операции (не забудьте проставить теги) и наименования операций внутри. Не пишите "Тыр-пыр 8 дыр 401.20 бюджет". Спросите у бухгалтера что это за операция, поищите, что она делает. Хорошим тоном написать, к примеру, не "205.31 - 401.10 2", а "Начисление дохода". Ведь ваша операция может быть универсальной и начислять не только на 205.31. Также, безликие операции с описанием корреспонденцией счетов непонятны многим бухгалтерам. Будьте ближе к себе и народу. Думаю, сейчас появились читающие, которые про себя мне отвечают, что они уже ~n лет пишут так и все ок. Я объясню. Обычно, когда мои коллеги пишут подобные наименования - это прямой путь к такому диалогу: на свой логичный вопрос, что делает операция, я получаю "Привет, а там же написано, что непонятно?". И чаще всего непонятно, для чего это сделано, так как, например, операция может формироваться по обоим КФО (просто быть универсальной), после определенных пертурбаций тот же отвечающий по телефону перекорежил операцию, и теперь она дает вообще другие проводки. А еще он мог в ней заменять ряд субконто, которые он выцепляет из мест совершенно неочевидных. В общем, баста, карапузики. Все должны писать емкие и понятные наименования. Не знаете, как написать - спросите у бухгалтера, что вы вообще делаете. Сформулируйте. Залезьте в гугл и прочтите. Не творите хаоса, его и без вас хватает.

21) Если вы нарисовали доп. реквизиты - вы уже четко понимаете, куда они пойдут. Если вы нашли спустя какое-то время более эффективный вариант работы типовой операции (алгоритм, функцию) и хотите ее переписать - сделайте сначала копию операции, а старую сделайте неактивной. Пусть она хранится и будет в старых документах. Ничего страшного не будет.

22) Вспомнил, пока писал свой любимый пункт. НЕ СОЗДАВАЙТЕ НА СЧЕТАХ УЧЕТА СУБКОНТО, КОТОРЫЕ ВЫ НЕ УМЕЕТЕ ИСПОЛЬЗОВАТЬ. На моей памяти, был консультант, который сейчас достиг очень больших высот, но ~n лет назад написал операцию для своей корректировки в плане счетов. Там он добавил субконто номенклатура и заставил туда перебить весь справочник контрагентов, заведя номенклатурную группу контрагенты. Почему? Потому что на счете было субконто контрагенты. Помните, что вы можете отдельно создать новое субконто и добавить его на счет. Хотя, если честно, в его случае даже это не понадобилось бы. Для тех, кто считает, что эта история - просто лютый сюрр, у меня таких историй наберется на 2 ивента инфостарта.

23) Делитесь своими красивыми решениями, получайте критику от коллег, создавайте воистину красивые решения. Даже если вы не уверены, красиво вы написали или нет. Если вам нужна помощь - пишите, думаю в перспективе мы соберем наилучшие решения по вопросам типовых операций.

 
 Проза, никак не относящаяся к статье

P.S. Я работаю в бюджетной сфере не так давно, и вообще в сфере айти прикладной к бухгалтерии и первичным документам, но меня крайне удивляет, что многие зарабатывают на отсутствии какой-либо информации в руках людей. Своими статьями я бы хотел передать все то, что у меня есть вам. Поэтому, если вы не согласны с чем то - напишите. Если я был груб - необессудьте. Так или иначе, я бы хотел, чтобы каждый из вас, кто будет читать мои статьи никогда не попал в те ситуации, в которые попадал я. Когда не у кого спросить, и когда никто, в том числе даже разработчики не могут тебе помочь потому, что на незнании и невежестве построен бизнес.

Статью объявляю законченной. Если далее буду писать какие то дополнения - уже не буду навешивать цифры продолжения. Ссылки на новые смежные статьи обязательно напишу по мере выхода (если они будут)

 

 

Хорошего вам дня. 

Типовые операции в 1С: БГУ 2. Часть 1

Типовые операции в 1С: БГУ 2. Часть 2

Типовые операции в 1С: БГУ 2. Часть 3

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mifka186 8 14.09.21 10:12 Сейчас в теме
Спасибо за цикл статей.
Очень жаль, что их не было полгода назад. Пришлось разбираться методом "тыка".
2. adeich 204 16.09.21 16:49 Сейчас в теме
Спасибо за статьи!
Интересно и поучительно! хотя многое уже и используется.
Хотелось бы статью - почему вы "противник" дополнительных табличных частей?
3. ldmonster 54 16.09.21 17:26 Сейчас в теме
(2)
Дак уже описал. Сегодня бухи хотят, завтра не хотят. В результате, пока в них так или иначе какие то данные хранятся - они так и будут мешаться до обрезки.

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

На самом деле по поводу типовых можно писать бесконечно. Здесь я описал базовые механизмы. Думаю потихоньку собирать интересные решения и выкладывать. Пока на вскидку тяжело вспомнить что то такое заковыристое, чтобы написать. Из такого, на скорую руку, могу например написать решения через ЗначениеЗаполнено(), условие через КВР выдернутое из КПС, как раз таки пакостное (но на деле единственное) решение по нормальному вводу реквизита "Мероприятие" не через тип "Все типы". Были у меня еще бухи, которые просили сделать автоматическую разбивку сумм в процентном соотношении. 20 к 80, 10 к 90 итп (там конечно те еще потуги были, но реализовали в зависимости от булевых галок).

Можете написать свои какие то запросы - вместе что-нибудь придумаем. Пока я тут немного завис на программинге в с++, поэтому не пишу ничего. Как вдохновение попрет - обязательно сделаю. Если написал что то интересное для вас в этом посте - напишите об этом.
4. adeich 204 21.09.21 10:09 Сейчас в теме
(3),
Чаще всего бухи просят "детализировать" обязательства (принятое и денежное), особенно по коммуналке, т.е. разбивают, например, водоснабжение, газоснабжение, энергоснабжение, когда они заключаются одним договором с генерирующей компанией. А вышестоящая просит (требует :) ) разбивку, хотя в регламентированной отчетности все идет сводом
Тут и приходит мысля вести их отдельно в доп.таблице и на отдельном управленческом счете
5. ldmonster 54 21.09.21 10:21 Сейчас в теме
(4)
Вариант интересный, но так и не нашел применения доп таблице. В данном случае, предложил бы сделать галку в типовой "Учет коммунальных услуг" и дублировал бы их на забалансовом аналитическом вспомогательном счете с субконто контрагент-договор-номенклатура, либо договор-номенклатура (из договора можно вытащить контрагента) - третье субконто на выбор.

Единственная проблема заключается в том, что многие коммунальные контрагенты (не скажем какие, вы знаете) ведут кривой учет из-за чего там прут какие-то нелепые авансы и их зачёты вручную. В общем, не все наверное так однозначно как я описал в этом посте, но постарался бы сделать без доп таблиц всеравно. Лишние действия бухгалтеру ни к чему.
6. adeich 204 21.09.21 11:09 Сейчас в теме
(5)
дублировал бы их на забалансовом аналитическом вспомогательном счете

примерно так и сделано. Только 3-е субконто Доп.классификация (можно Мероприятия, Направления деятельности) и в таблице разбивка суммы. Скрин быстро накидал для примера, направления деятельности используются для 109 счета
Прикрепленные файлы:
7. ldmonster 54 21.09.21 11:37 Сейчас в теме
(6)
Мы через номенклатуру делали такое. Просто били папку "доп аналитика" и ее использовали. С мероприятиями отдельная песня, их так неудобно выбирать просто ужас.

В данном случае присутствие доп табличной части считаю обоснованным, но можно было и без нее. Потом если перестанет быть необходимой сложно будет удалить.
8. adeich 204 21.09.21 14:22 Сейчас в теме
(7)
их так неудобно выбирать просто ужас

с допклассификацией косгу аналогично, пришлось заплатку делать чтобы по коду сортировал при выборе
Оставьте свое сообщение

См. также

Типовые операции в 1С: БГУ 2. Часть 3

Механизмы бухгалтерского учета v8 v8::БУ БГУ БУ Госбюджет Бесплатно (free)

В данной статье автор расскажет, что такое типовые операции в конфигурации бухгалтерии для госсектора, установит стандарты качества написания типовых операций. Часть 3. Разбор четвертой страницы формы типовой операции "Проводки", знакомство с источниками данных, формирующих проводку, первое знакомство с языком СКД.

10.09.2021    343    ldmonster    0    

Типовые операции в 1С: БГУ 2. Часть 2

Механизмы бухгалтерского учета v8 v8::БУ БГУ Госбюджет Бесплатно (free)

В данной статье автор расскажет, что такое типовые операции в конфигурации бухгалтерии для госсектора, установит стандарты качества написания типовых операций. Часть 2. Разбор второй страницы формы типовой операции "Реквизиты", функциональное назначение кнопок, создание реквизитов и групп, базовые знания о форматировании.

09.09.2021    500    ldmonster    0    

Типовые операции в 1С: БГУ 2. Часть 1

Механизмы бухгалтерского учета v8 v8::БУ БГУ БУ Госбюджет Бесплатно (free)

В данной статье автор расскажет, что такое типовые операции в конфигурации бухгалтерии для госсектора, установит стандарты качества написания типовых операций Часть 1. Знакомство с типовыми операциями. Разбор первой страницы формы типовой операции, корректное создание (копирование), создание правильного и удобного наименования, написание комментария.

07.09.2021    591    ldmonster    2    

Регистры бухгалтерии. Виртуальная таблица остатков

Механизмы бухгалтерского учета v8::БУ 1cv8.cf БУ Бесплатно (free)

Принцип работы виртуальной таблицы остатков. А также некоторые особенности.

24.08.2020    11405    YPermitin    1    

Регистры бухгалтерии. Еще одна таблица оборотов ДТ / КТ

Механизмы бухгалтерского учета v8::БУ 1cv8.cf Бесплатно (free)

Виртуальная таблица оборотов ДТ / КТ регистра бухгалтерии. Особенности и применение.

12.08.2020    6422    YPermitin    1    

Регистры бухгалтерии. Виртуальная таблица оборотов

Механизмы бухгалтерского учета v8::БУ 1cv8.cf БУ Бесплатно (free)

Виртуальная таблица оборотов регистра бухгалтерии. Принцип работы, особенности и кое-что еще.

28.07.2020    9153    YPermitin    10    

Регистры бухгалтерии. Настройки, субконто и движения с субконто

Бухгалтерский учет Механизмы бухгалтерского учета v8::БУ Бесплатно (free)

Описание основных настроек регистров бухгалтерии, работы виртуальных таблиц "Субконто" и "Движения с субконто" и кое-что еще.

10.02.2020    23828    YPermitin    13    

Конструирование аналитической структуры плана счетов в программе «1С:Бухгалтерия 8» с целью обеспечения достоверности финансовой отчетности

Дебиторская и кредиторская задолженность Оборотно-сальдовая ведомость, Анализ счета Учет доходов и расходов Оборотно-сальдовая ведомость, Анализ счета Учет доходов и расходов Механизмы бухгалтерского учета Бухгалтерский учет v8 v8::БУ КА1 БП2.0 УПП1 Россия БУ УУ Бесплатно (free)

Описаны правила конструирования аналитической структуры плана счетов, позволяющей формировать достоверную финансовую отчётность. Описываются принципы формирования баланса и отчета о прибылях и убытках в МСФО и в РСБУ. Даётся определение развёрнутого сальдо и рассматривается его корректное отражение в ОСВ. Делается анализ минимально необходимого количества уровней субконто по счетам расчётов. Подробно рассматриваются ошибки плана счетов «Хозрасчётный» и ОСВ стандартной поставки 1С, препятствующие выверке баланса и отчета о прибылях и убытках по ОСВ. Предлагаются методы купирования проблем.

24.10.2010    174322    RayCon    106