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

10.09.21

Разработка - Механизмы типовых конфигураций

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

Наконец, мы дошли до самого интересного. Написания типовой. Быстрый взгляд на таблицу рабочей части вкладки "Проводки" для того, чтобы понимать, что и как:

 

 

Колонка 1 - пометка отключения. Проводка с пометкой отключения не будет формироваться даже если условие формирования выполнено.

Колонка 2 - пометка предопределенности. В скопированных операциях ее не будет.

Колонка 3 - установлено условие. Эта колонка говорит нам о том, что проводка формируется при достижении определенного условия.

Колонка 4 "Наименование" - Чисто служебное наименование. Его стоит заполнять осознанно, как и наименование типовой операции.

Колонка 5 "Источник данных" - Место, откуда будут тянуться данные используемые в проводке. Если вы видите надпись "(доп. источник)" в конце, значит используется источник данных, автоматически формируемый самой программой (3 вкладка "Источники данных"). Они заведомо прописаны, и ничего с них вы не получите и не измените без вмешательства в код. Если же вы не видите надписи про дополнительный источник - значит, проводка берет данные из одноименной таблицы в документе.

Колонка 6 "Код" - Служебный код операции. Не будет нас интересовать.

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

Для чего это нужно? Например, отделить определенную группу проводок от другой. Сейчас если я опишу, вряд ли это будет доступно, поэтому коснемся этого чуть позже. Сейчас вам нужно знать только то, что проводки в группе будут проводиться от наименьшего к большему и так пока не закончатся источники проведения, далее алгоритм проведения перейдет к новой группе. 

 

 

Перейдем наконец внутрь операции

Группа и Номер в группе - только что разобрали, далее будем смотреть на практике

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

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

Иерархия операндов формул - это то, из чего мы будем компоновать операцию

Справа видим три вкладки:

Общие реквизиты проводки - реквизиты проводки, которые не принадлежат конкретно дебету или кредиту, а принадлежат строке проводки непосредственно

Реквизиты дебета и Реквизиты кредита - как понятно после написанного выше - реквизиты, принадлежащие либо кредиту, либо дебету.

Внутри каждой вкладки есть множество строчек. Каждая из этих строк имеет ряд полей. Заполняя их, мы будем задавать правила поведения нашей типовой операции.

 

 

Возвращаемся к источникам данных.

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

Давайте представим, что мы хотим с вами делать проводку по приемке МЗ. Что нам для этого нужно?

Попытаемся прикинуть проводки, для начала на глаз:
ДТ                                   КТ
105.36                           302.34
Тоесть уже 2 счета. 

11030000000000000    11030000000000244
*Допустим, мы будем спортивным учреждением (поэтому код главы 1103)*
По инструкции ведения бухгалтерского учета нам понадобятся 2 КПС, в данном случае оба КРБ

346                                  73*
2 КОСГУ (КЭК), один из которых оборотный

Один КФО
Одна сумма
Одно количество
Одно наименование первичного документа
Один номер и одна дата первичного документа
Один номер ЖО
Возможно характеристика движения

Но однозначно, еще субконто от счетов. В моем случае субконто от счета 105.36:

Номенклатура
ЦМО
И субконто от счета 302.34
Контрагент
Договор

 

 

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

На скриншоте вы можете заметить, что не все реквизиты верные, в рамках этой статьи мы разберемся со всеми вопросами и рассмотрим типичные багфиксы стандартных методов. 

Так вот, где же взять все эти позиции?

Для начала рассмотрим документ. У нас есть сразу счет расчетов, и КПС к нему, контрагент с договором и получатель (ЦМО). Если покопаемся во вкладках, то найдем во вкладке дополнительно еще и информацию о документе поставщика. Не хватает только номенклатуры с ее реквизитами.

Если мы внимательно посмотрим, то очень удобно в табличной части у нас расположилось множество строчек и как раз наш вариант. На каждой строке есть КФО, КПС , счет дебета, номенклатура, количество, сумма, а это уже почти половина.

 

 

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

 

 

Если же мы, к примеру, выберем источник данных "Материалы" вы увидите, что в иерархии операндов таблица перестанет быть неактивной, раскрасится в черный и ее структура будет 1 в 1 наша таблица из документа. К сожалению, не все поля полностью соответствуют своему наименованию в документе, поэтому будьте внимательны, читайте, что написано справа в скобочках. Нередко бывает, что у документа есть реквизит "Контрагент", а вызываем мы его обращаясь к полю "Получатель".

 


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

У вас уже, наверное, назрел вопрос, а что если мне будет необходимо формировать одну проводку используя 2 таблицы одновременно? Этот вопрос меня тоже мучал первое время, но потом, проанализировав, как собираются проводки в типовой операции, я пришел к выводу, что это невозможно, и единственное правильное здесь решение то, что сделали разработчики 1С. Объяснять почему - не буду. Давайте перейдем к более интересным вещам. Просто запомните - ТОЛЬКО ОДНА ТАБЛИЧНАЯ ЧАСТЬ МОЖЕТ УЧАСТВОВАТЬ В ПРОВОДКЕ.

 

 

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

 

 

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

 

 

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

 

 

Касательно раздела макросов - отлично расписано на ИТС, пока вкратце, вы просто ставите эту команду рядом с реквизитом, и программа сигнализирует вам, что вы что-то не заполнили. Очень удобная функция, так как мы не можем поставить проверку заполнения на реквизитах, не являющихся дополнительными.

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

 

 

Давайте сейчас еще вкратце рассмотрим с вами пример окна реквизитов дебета.

Как вы видите, у нас есть окна с формулами заполнения и есть поля, в которых мы можем заполнить операции вручную. Так вот, сразу хочу сказать, понравится вам это или нет, но если вы хотите писать типовые операции, которые будут универсальные, которые не отломятся после обновления, которые буду импортироваться-экспортироваться без глобального переписывания - вы ДОЛЖНЫ вытаскивать все реквизиты по формулам. У нас не должно быть ни единого реквизита, заполненного вручную. Только формулы и дополнительные реквизиты! Другого быть не должно! В зависимости от ситуации могут быть совершенно редкие исключения, но поверьте, шанс того, что у вас именно то самое исключение, стремится к нулю!

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

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

Сразу заострю ваше внимание на том, что я сам заметил на сразу. В самом низу статьи "Язык выражений системы компоновки данных" есть тип ЗНАЧЕНИЕ() и работает он только с перечислениями и предопределенными данными. Если то, что я написал, непонятно - мы это будем рассматривать в следующей части статьи. 

 

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

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

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

См. также

Ценовая власть. Выносим из цикла схему СКД

Механизмы типовых конфигураций Ценообразование, анализ цен Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    387    tango    0    

3

Формула в реквизите. Приквелл к сериалу "Ценовая власть"

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    291    tango    5    

2

Ценовая власть. Второй сезон

Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Бесплатно (free)

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

08.04.2024    449    tango    0    

2

Ценовая власть (УТ 11.5) - 2

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

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

06.04.2024    427    tango    1    

1

Ценовая власть или Управление ценообразованием (УТ 11.5)

Ценообразование, анализ цен Механизмы типовых конфигураций Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Ценовая власть - это способность (возможность) компании изменять в некоторых пределах отпускную цену своего товара (услуг, продукции). Чем в более широких пределах вы можете играть в цену продажи, тем больше этой власти у вас. Если вы не можете управлять отпускной ценой, то это или не ваш бизнес, или не бизнес вовсе. Здесь в рубрике "База знаний аналитика и руководителя проекта" слово проект не ограничено "проектом в 1С". Посмотрим, что для этого есть в УТ 11.5.

1 стартмани

05.04.2024    505    tango    12    

2

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

07.02.2024    2530    YA_418728146    11    

42

Регистры накопления в 1С:КА2 и 1С:ERP для расчета НДФЛ, страховых взносов и взаиморасчетов с сотрудниками на январь 2024 года. Краткое описание

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет НДФЛ Абонемент ($m)

Для расчета зарплаты и соответствующих налогов в конфигурациях 1С:КА2 и 1С:ERP используется 22 регистра накопления, 7 регистров сведений, 1 регистр расчета и бухгалтерские проводки. В таблице приведены названия этих регистров, указаны основные регистраторы и виды движений приход/расход. В описании приводится краткое функциональное назначение регистров в основных зарплатных процессах. Описание регистров родилось из черновиков при написании различных отчетов и обработок при эксплуатации 1С-овских конфигураций и исправлении ошибок по НДФЛ, взаиморасчетов с сотрудниками и прочих. Информация не претендует на полноценное описание работы регистров, скорее это дискуссионный материал. Но, возможно, кому-то пригодится и сократит время при подготовке отчетности за непростой (в плане учета зарплаты) 2023 год. А возможно, кто-то поделится своим опытом.

1 стартмани

10.01.2024    1110    7    2ncom    3    

8

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    4926    mrXoxot    11    

100
Комментарии
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 08.03.23 18:25
Сообщение было скрыто модератором.
...
2. пользователь 25.06.23 19:34
Сообщение было скрыто модератором.
...
3. user861072 30.11.23 23:21 Сейчас в теме
Здравствуйте!
Я хотела в типовую операцию добавить дополнительную проводку, которая отрабатывала бы только при установке любой валюты в РКО, кроме USD (код у нее 840). Пробовала в условии формирования проводки написать
НЕ Документ.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("840")
- не работает, пишет Ожидается ) ")"
НЕ Документ.ВалютаДокумента = Справочник.Валюты.Код("840")
- не работает, пишет Ожидается ) ")"

Пыталась воспользоваться операндами формул и написала
НЕ Документ.ВалютаДокумента.Код("840") - не работает. Всё также пишет

[ОшибкаНастроекКомпоновкиДанных]
по причине: Ожидается ) ")"

Подскажите, пожалуйста, как можно написать условие на валюту документа. И можно ли вообще?
Оставьте свое сообщение