Как проводятся документы в типовых конфигурациях от 1С

Публикация № 1097936

Разработка - Практика программирования

167
В свое время, когда только начинал шаги в 1С и изучал, как проводятся документы в конфигурациях на платформе 1С по книге "Разработка управляемого интерфейса" (Хрусталева Е.Ю.), и там были представлены примеры совсем далекие от того, как сейчас проводятся документы в современных конфигурациях от 1С.

В свое время, когда только начинал шаги в 1С и изучал, как проводятся документы в конфигурациях на платформе 1С по книге "Разработка управляемого интерфейса" (Хрусталева Е.Ю.), и там были представлены примеры совсем далекие от того, как сейчас проводятся документы в современных конфигурациях от 1С.

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
...
    // регистр ЗаказыКлиентов Расход
    Движения.ЗаказыКлиентов.Записывать = Истина;
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        Движение = Движения.ЗаказыКлиентов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.ЗаказКлиента = ТекСтрокаТовары.ЗаказКлиента;
        Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
        Движение.Характеристика = ТекСтрокаТовары.Характеристика;
        Движение.КодСтроки = ТекСтрокаТовары.КодСтроки;
        Движение.Склад = ТекСтрокаТовары.Склад;
        Движение.Серия = ТекСтрокаТовары.Серия;
        Движение.Заказано = ТекСтрокаТовары.Количество;
        Движение.КОформлению = ТекСтрокаТовары.Количество;
        Движение.Сумма = ТекСтрокаТовары.Сумма;
    КонецЦикла;
...
КонецПроцедуры

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

Совсем вкратце он выглядит примерно так:

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
...
    Документы.РеализацияТоваровУслуг.ИнициализироватьДанныеДокумента(Ссылка, ДополнительныеСвойства); // тут мы инициализируем таблицы для регистров
...
    ЗаказыСервер.ОтразитьЗаказыКлиентов(ДополнительныеСвойства, Движения, Отказ); // так выполняем запись
...
    ПроведениеСерверУТ.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ); // тут выполняется контроль
...
КонецПроцедуры

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

Свойства проведения документа.

Во-первых документы должны быть со следующими настройками режима проведения:

Режим проведения обязательно должен быть "Разрешить", а оперативное проведение чаще всего "Запретить". Удаление движения: "Не удалять автоматически" означает, что в "Обработке удаления" документа будут описаны процедуры, в которых явно будет прописано удаление движений при отмене проведения.

Схема проведения в событии "Обработка проведения".

Давайте для примера возьмем документ РегистрацияТранспортныхСредств (В ЕРП И УТ он должен быть). Не будем разбирать на примере документа РеализацияТоваровУслуг или других основных документах, т.к. они достаточно нагружены различными процедурами, которые будут отвлекать от нашей схемы проведения документа.

Сама обработка проведения нашего документа выглядит так:

 

К самой схеме проведения относятся процедуры:

1. ИнициализироватьДополнительныеСвойстваДляПроведения;
2. ИнициализироватьДанныеДокумента;
3. ПодготовитьНаборыЗаписейКРегистрацииДвижений;
4. ЗагрузитьТаблицыДвижений;
5. ЗаписатьНаборыЗаписей;
6. ОчиститьДополнительныеСвойстваДляПроведения;

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

Остальные процедуры:
1. РеестрДокументов.ЗаписатьДанныеДокумента;
2. ДокументыПоОС.ЗаписатьДанныеДокумента;
3. СформироватьЗаписиРегистровЗаданий;
Не относятся к схеме и могут отсутствовать в других документах. К примеру РеестрДокументов.ЗаписатьДанныеДокумента (1) используется для хранения реквизитов документов и быстрого доступа к ним, чтобы не обращаться к реквизитам самого документа (к которому у пользователей, к примеру не может быть доступа по RLS, или если и есть то эти права достаточно "тяжело" отрабатывают для SQL сервера). В результате запрос с использованием этого РС отрабатывает быстрее.

Они являются специфичными для документа и могут отсутствовать в других документах.

 Давайте разберем по очереди каждую из этих процедур схемы проведения.

1.

Эта процедура инициализирует общие структуры, используемые для проведения документа.
Изменяется свойство ДокументОбъекта ДополнительныеСвойства в которое помещаются свойства:

"ТаблицыДляДвижений" - в него будут записываться таблицы, которые будут загружаться в регистр сведений (о чем речь пойдет далее);
"ДляПроведения" - будут содержаться свойства и реквизиты документы, используемые для проведения: "СтрукутраВременныеТаблицы" - записывается МенеджерВременныхТаблиц, записывается "Режим проведения" - режим проведения нашего документа, "МетаданныеДокумента" - метаданные документа и "Ссылка" - ссылка на текущий документ;

Теперь мы инициализировали данные, которые сможем использовать для проведения.

2.

Эта процедура одна из самых основных.

Сначала в процедуре ЗаполнитьПараметрыИнициализации инициализируются реквизиты документа, которые в будущем могут использоваться к примеру как параметры для таблиц движений регистров.

В начале этой процедуры видно что выбираются реквизиты документа, и устанавливается параметр "Ссылка", чтобы ограничить выборку одним документом, который проводится.

В конце этой процедуры перебираются все колонки РезультатаЗапроса и устанавливаются параметры в Запрос. Наши будущие таблицы движений, которые будут помещены в свойство "ТаблицыДляДвижений", будут использовать эти параметры.

В Функции ЗначенияПараметровПроцедения устанавливаются параметры в Запрос, которые берутся не из реквизитов

Теперь вернемся в процедуру ИнициализироватьДанныеДокумента и увидим несколько однотипных процедур:

По параметрам этих процедур видно, что они одинаковые. И выполняют одинаковую цель - добавляют в тексты запросов для каждого из регистров, по которым будут сформированы движения, которые будут отражены в регистрах.
Названия у них, как правило: "ТекстЗапроса" + "Таблица" + ИмяРегистра, где ИмяРегистра - имя регистра, движения которого будут формироваться этим запросом.

На мой взгляд первые 2 процедуры отступают от общепринятого стандарта формирования таких процедур, и там явно не хватет "ТекстЗапросаТаблица".

Разберем одну из такий процедур (функций):

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

В самом конце процедуры происходит инициализация таблиц для движений.

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

(Имена псевдонимов в Тексте запроса и Имена Измерений(Ресурсов, Реквизитов) регистров должны совпадать.

(Имена псевдонимов в Тексте запроса и Имена Измерений(Ресурсов, Реквизитов) регистров должны совпадать.

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

 

3.

Данная процедура, как следует из ее описания выполняет 2 основных функции:
1. Очищает наборы записей от старых записей (в настоящее время все менее актуальна, т.к. чаще работают на тонких клиентах, а не на толстых);

2. Взводит флаг записи у регистров, по которым есть ТаблицыДляДвижений с количеством записей более 0. По сути смысл процедуры в строке Объект.Движения[ИмяРегистра].Записывать = Истина.

Также в этой процедуре удаляются регистры, по которым документ является регистратором, но движения пишутся не из модуля документа или отложенно, к примеру, регламентными заданиями.

4.

Загружаются Таблицы для движений из свойства "ТаблицыДляДвижений". По сути самая главная строчка - это Движения[ИмяРегистра].Загрузить(Таблица.Значение). Обратите внимание, что разработчики решили повторно взвести флаг Записывать = Истина, хотя его уже установили на 3 этапе схемы проведения. Все таблицы для проведения должны начинаться с слова "Таблица".

В данном случае загружаются таблицы в цикле, хотя могут также встречаться сразу несколько однотипных процедур с именами "Отразить" + ИмяРегистра, где ИмяРегистра - имя регистра, по которому отражаются движения.

5.

В процедуре ЗаписатьНаборыДанных Записываются движения (строка Объект.Движения.Записать()) и копируются параметры для выполнения регистрации движений (к примеру для использования их в контролях, Объект.Движения.ТоварыОрганизаций.ДополнительныеСвойства.Вставить("РассчитыватьИзменения", Истина)).

6.

Завершающая техническая процедура в которой по факту происходит закрытие МенеджераВременныхТаблиц.

Схема проведения в событии "Обработка  удаления проведения".

Схема удаления проведения похожа на обычную схему проведения, только в ней основных процедур не 6 (процедур в обработке проведения "Отразить" + ИмяРегистра (3) может быть несколько), а 4 необходимых только для удаления движений. Тут вызываются процедуры только общего модуля ПроведениеСерверУТ. Если сравнивать с обработкой проведения, то в обработке удаления проведения будут использоваться процедуры 1-3-5-6, ИнициализироватьДанныеДокумента(2) и ОтразитьДвиженияДокумента(4) отсутствуют.

Схема проверки Контролей при проведении документов.

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

Схема контроля при проведении:

1. СформироватьСписокРегистровДляКонтроля;
2. ВыполнитьКонтрольРезультатовПроведения;

1.

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

2.

Процедура ВыполнитьКонтрольРезультатовПроведения выполняет контроли по различным регистрам конфигурации.

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

Далее добавляются запросы контроллей в один большой пакет запросов, а также в МассивКонтролей добавляются контроли, по которым будут проводится контроли.

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

Надеюсь в этой статье мне удалось немного упростить ознакомление с типовой схемой проведения для тех, кто только встретился с этим механизмом.

167

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

Комментарии
Избранное Подписка Сортировка: Древо
1. GROOVY 2507 24.07.19 23:58 Сейчас в теме
Там как бы много авторов https://its.1c.ru/db/pubmanagedui
А так выглядят материалы для типографии:
https://drive.google.com/drive/folders/0B2f7eow3JbLZcVhZOWtNN2ZUOHFydjVRM2s5MmxLZ­w?usp=sharing
:)
user774630; VooDOOPRo; creatermc; pbabincev; EMelihoff; sm.artem; +6 2 Ответить
5. skv_79 197 25.07.19 09:13 Сейчас в теме
(1) Да, авторов много, но Хрусталева шла первой в моей редацкии, поэтому запомнилось :). Да, согласен, это моя первая статья и наверно она очень далека от типографских стандартов.
2. bulpi 163 25.07.19 08:43 Сейчас в теме
Автор,
англоязычные люди не зря придумали аббревиатуру ИМХО.
конечно намного лучше и правильнее использовать типовой подход "Проведения документов" при выполнении процедуры проведения.

Вот тут вместо "конечно" напрашивается "ИМХО". Я бы плюс поставил, полезная статья. Но безапелляционно утверждать, что этот БРЕД БРЕДЯЦКИЙ (ИМХО, конечно) - это образец для подражания - .... слов нет.
rovenko.n; philya; +2 2 Ответить
6. skv_79 197 25.07.19 09:16 Сейчас в теме
(2) Вся эта статься - ИМХО, мое видение как это работает в типовых.
Трактор; +1 Ответить
3. DoctorRoza 25.07.19 08:50 Сейчас в теме
Ну такое нужно знать, как Отче Наш.
4. Aftee 25.07.19 09:09 Сейчас в теме
Увидев заголовок статьи, радостно подумал, что наконец-то смогу приблизится к пониманию алгоритмов проведения документов в ЗУП 3.1. Увы... Схема проведения - возможно, но остальное... Либо разбираемый пример в статье слишком простой (как большинство разбираемых примеров, так уж завелось), и в других документах дела обстоят "немного иначе", либо зависит от конфигурации (хотелось бы думать, что второе).
Summer_13; philya; begemot; acanta; +4 Ответить
7. skv_79 197 25.07.19 09:18 Сейчас в теме
(4) С ЗУП дела не имел, поэтому не могу сказать как там проводятся, эта статья для ЕРП и УТ. И для нее взяты самые простые документы в конфигурации, т.к. статья написана для ознакомления (читать начинающего работать с типовыми конфигурациями) со схемой проведения.
24. philya 78 31.07.19 10:11 Сейчас в теме
(7) как-как... ЗУП прекрасна. Глубина стека вызовов уровней в 10-15. Множественные вызовы функций из одной строки, которые просто вызывают следующую функцию. Запросы в 100 килобайт текста. Несколько почти одинаковых запросов по списку сотрудников.

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

Вспоминаем ЗУП 7.7, которая с меньшим числом свистелок, но фантастической скоростью считала ту же самую зарплату и плачем. )
WellMaster; Yashazz; rintik; maxopik2; Cерый; vlad3190; akimych; Silenser; +8 Ответить
28. CMK0001 02.08.19 12:53 Сейчас в теме
8. PLAstic 223 25.07.19 10:03 Сейчас в теме
(4) Пример вполне классический для УТ11. Поверхностно рассмотрен механизм контролей, в остальном достаточно для понимания.
20. Бубузяка 62 28.07.19 13:21 Сейчас в теме
(4)
либо зависит от конфигурации

В БП несколько по другому, но, в целом, подход такой же. Через МВТ набираются таблицы значений.
9. PLAstic 223 25.07.19 10:05 Сейчас в теме
Я бы рекомендовал:
1) Вернуть шрифт в стандартный для статей. Мне показалось, он мелкий и пришлось увеличивать до 120% масштаб.
2) В картинках убрать чёрный курсив и выделить имена процедур красной рамкой. Очень плохо читается.
3) Загрузить текст в ворд и исправить орфографию и пунктуацию.

В остальном нормальная статья. Добавил себе, буду новичкам скидывать.
WellMaster; AlbinaAAA; Summer_13; Darklight; cleaner_it; +5 Ответить
10. DBOdin_Lab 25.07.19 10:07 Сейчас в теме
Знать это все хорошо и правильно.
Но давайте взглянем на эту технику проведения под иным углом.
Мы все хотим быстрого проведения. Самые большие задержки возникают от обращений к базе данных. А теперь давайте посчитаем, сколько запросов к базе данных выполняется в процессе проведения (не считая записи результирующих движений):
1. Чтение реквизитов шапки документов;
2. Чтение табличных частей;
3. Запись временных таблиц (не зря же используется МенеджерВременныхТаблиц);
4. Чтение из временных таблиц;

Но если подумать, то все (или почти все) нужные нам данные уже есть в объекте. Можно заполнить движения без дополнительных обращений к базе.

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

А вы что думаете?
Yashazz; philya; +2 1 Ответить
11. dhurricane 25.07.19 10:21 Сейчас в теме
(10)
или почти все
Мне кажется, что как раз из-за того, что очень часто обращения к БД не избежать, получение реквизитов выполняется всегда запросом.

можно избежать просто проверив модифицированность объекта
Продолжите, пожалуйста, свою мысль. Как именно избежать? Что предполагается делать после проверки?
12. DBOdin_Lab 25.07.19 11:05 Сейчас в теме
(11)
Продолжите, пожалуйста, свою мысль. Как именно избежать? Что предполагается делать после проверки?


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

Полагаю, тут удобство именно в том, что далеко не все есть в табличных частях и реквизитах, и часто требуется запросом получить дополнительную информацию. Плюс есть возможность используя один и тот же программный интерфейс отразить движения документа без его перезаписи, т.е. без получения объекта, используя одну ссылку.
15. DBOdin_Lab 25.07.19 13:10 Сейчас в теме
(13)
Плюс есть возможность используя один и тот же программный интерфейс отразить движения документа без его перезаписи, т.е. без получения объекта, используя одну ссылку.


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

Как бы мне хотелось увидеть когда-нибудь групповое перепроведение без записи!
21. Бубузяка 62 28.07.19 13:27 Сейчас в теме
(15) Если перепроведение подразумевает только "толкание" регистров, то документ записывать не надо. Вызываем в модуле менеджера "ПодготовитьПараметрыПроведения" и получаем набор таблиц необходимых для подготовки вспомогательных данных и формирования движений. Далее вызываем методы модуля менеджера документа или программный интерфейс общих модулей. Таким образом можно "двинуть" только те регистры, что требуются.
14. baracuda 2 25.07.19 12:46 Сейчас в теме
годно, только много букв. надеюсь осилю этот текст
16. triviumfan 13 25.07.19 20:55 Сейчас в теме
Была похожая тема: https://infostart.ru/public/1026226/
И ещё одна, не могу найти.
17. json 2535 26.07.19 07:59 Сейчас в теме
(16) может эта https://infostart.ru/public/552536/?
18. pasha_2001 26.07.19 16:42 Сейчас в теме
Вопрос в тему: В процедурах ТекстОтраженияВРеглУчете() где идет выборка для проводок часто можно видеть в запросе ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаДт, ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) КАК СчетДт,
Каким образом и где подбираются корректные значения в данные строки?
19. Rashid80 26 28.07.19 09:51 Сейчас в теме
А потом 1с поменяет эти правила (разумеется в типовых документах она все исправит)... И ваши корректные проведения вдруг окажутся некорректными. Пока это не объявлено как интерфейс или api - это риск.
Периодически натыкаюсь что экспортные процедуры общих модулей поменяли перечень параметров или стали не экспортными
Chai Nic; Summer_13; philya; Darklight; +4 Ответить
25. philya 78 31.07.19 10:15 Сейчас в теме
(19) Еще бывает, что их просто удаляют. Поэтому стараюсь не ленится и вытаскивать код из общих модулей во внешние обработки целиком - потом возвращать работоспособность проще.
Rashid80; +1 Ответить
29. Summer_13 07.08.19 15:03 Сейчас в теме
22. Бубузяка 62 28.07.19 13:39 Сейчас в теме
Считаю, что это полезная статья.
Она для тех, кто только начинает поддержку и сопровождение типовых конфигураций или решил закончить со свободным творчеством.
1. Если писать в стиле, принятом в типовом решении, тогда ваши последователи легко освоят ваше творчество.
2. У 1С есть ресурсы на исследование и оптимизацию процессов, связанных с изменением данных в транзакции, у меня таких ресурсов нет. Поэтому я следую стандартам разработки и повторяю приемы поставщика.

Про риски. После обновления должно выполняться минимальное тестирование. Хотя бы на открытие форм и проведение документов. Этот процесс снизит риск лишиться работы.
33. Yashazz 2939 25.12.19 17:44 Сейчас в теме
(22) Если писать втрое проще прямо в модуле объекта и прямо нужные движения, то освоят ещё легче. А 1С очередной раз наворотила адскую хрень и когда их собственные спецы окончательно в ней запутаются, очередной раз устроит всем на "радость" полный рефакторинг.

И это автор ещё не касался генерации проводок БУ/НУ в ЕРП и КА, которые вообще вынесены в фоновку и неописуемо "прекрасны" при попытке их менять и отлаживать.
23. Darklight 21 30.07.19 13:44 Сейчас в теме
За статью спасибо. Но, сам механизм, конечной. бредовый. Нет, идея правильная - разделять настройки, требования, сбор данных, действия и контроль на отдельные блоки это здравая идея. Но то, как архитектурно это построено и как реализован - это кошмар. Куча лишнего кода, нерациональное использование памяти, куча циклов, повторяющиеся условия, разбросанные по куче модулей алгоритмы - это бред. И даже унификация это бреда внутри одного документа страдает. И что-то я не увидел секции наложения управляемых блокировок (ну там где остатки не контроллируются постфактум)

На мой взгляд - описание проведения должно быть более декларативным, по чётко-выделенным секциям, желательно в особой текстовой (XML?) схеме, cодержащей:

1. Требования к получению настроек (общих (обычно функциональные опции), организации (учетная политика), документа (внутренние опции и режимы))
2. Требования к получению источников данных (таблицы и поля),и их блокировки
3. Описание алгоритмов преобразования источников в движения (обычно построчные - т.е. принимающие строку к обработке)
4. Требования к источникам данных (дополнительные фильтры, настроенные исходя из текущий настроек п.1)
5. Описание ожидаемых выходных данных - наборов движений
6. Описание схемы обработки данных: ветвления условий (если таковы есть для конкретных данных) и связанные с ними алгоритмы обработки
7. Описание текстов шаблонов возможных ошибок (если общие не годятся)
8. Требования контроля данных
9. Описание алгоритмов постобработки (если требуются)

Так вот, эти секции схемы должны заполняться операциями, зарегистрированными по документу, т.е. документ может совершать целый набор разных операций (как совершенно отличных, зависящих от режима), так и связанных (выполняемых вместе/последовательно).
Каждая операция должна должна иметь своё заполнение каждой вышеназванной секции - повторяющиеся требования - сворачиваются, требования с разными условиями - объединяются (а условия будут наложены уже при обработке), источники данных объединяются (я имею в виду, в первую очередь, объединение полей, но таблицы тоже могут объединяться через "ОБЪЕДЕНИТЬ ВСЕ" при наличии сложных условий "ИЛИ" - это уже задача внутреннего оптимизатора генератора финальной схемы, который, правда, должен операться на возможные хинты, оставленные архитектором схемы)

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

В идеале должна получиться единая секция инициализации - сбора источников данных; единая схема построчной обработки источников данных (число циклов прямо пропорционально независимым источникам данных); единая схема записи наборов движений (число циклов прямо пропорционально числу выходных наборов); единая схема контря (число циклов прямо пропорционально числу выходных наборов); и единая секция постобработки.

Вот такое моё виденье того, как должно выглядеть современное проведение документов. Основаное на предварительно выполненных этапах:
1. Регистрация операций
2. Декларирование схемы (для каждой операции, и получение финальной схемы)
3. Кодогегенерация алгоритмов проведения (но основе финальной схемы или набора финальных схем)
4. Выполнение оптимизированного алгоритма, с минимальным числом циклов и обращений к базе данных

То есть - что-то типа ещё более продвинутой компоновки данных, но для проведения! Где исхначально есть несколько схем, которые перед кодогенерацией (не только запросов, но и алгоритмов обрабтки) ещё и объединяются в единую схему, с оптимизацией и выкидыванием лишнего.

P.S.
Кстати, операции, при декларировании своих схем - могли бы ещё ссылаться на другие схемы и шаблоны, установленные в конфигурации, например на различные шаблоны отражения регл проводок.

P.P.S.
И само собой, должен быть какой-то автоматизированный мастер-конструктор, позволяющий визуально (хотя поддержка макро-скрипта тоже не помешала бы) настраивать секции схемы для каждой операции (независимо, хотя сама опрация может имеить прописанные зависимости от другой операции, и элементы, наследуемые из неё, при этом может их расширять)
Yashazz; EMelihoff; Chai Nic; philya; +4 Ответить
26. skv_79 197 31.07.19 18:16 Сейчас в теме
(23)Интересная мысль про новую "Схему СКД" для проведения документов. Но вот мне кажется 1С сейчас сконцентрированы на другом: расширения, EDT. Про движения, наверно, вспомнят еще не скоро... Скажем так, сейчас в 1С развиваются те технологии, монетизация который достаточно высока. А обычном программисте, который пишет там свои движения, никто особо и не думает :)
27. Darklight 21 01.08.19 10:30 Сейчас в теме
(26)Не согласен с тем, что компания 1С сейчас не думает о программистах. Как раз со времён выхода 1С: Предприятие 8.3 очень даже думает. Не так много, как хотелось бы (вот, язык - вообще не развивается), но тут во много всё ограничивается консервативным настроем руководства (а может и ведущих архитекторов) компании, на то как должна развиваться платформа, в т.ч. в части конфигурирования, и внешнего вида для пользователей (и тут переход на УФ и управляемое приложение уже был гигантским скачком, надо заметить - что фактически этот скачок пока так и не завершён - и его можно смело считать не особо успешным).

А то, о чём я написал в (23) возможно только во одном из сценариев (или одном, плавно перетекающим в другой):

1. Представление совершенно нового продукта с иной архитектурой - а-ка 1С: Предприятие 9 - крайне маловероятный сценарий на ближайшие десятилетия

2. Создание расширения (плагина) для IDE EDT (хм... кстати, не только для EDT - такой плагин можно было бы создать для многих редакторов, поддерживающих редактирование 1С, например для Visual Studio Code - но в них в таком плагине нет большого смысла, без других плагинов, которые есть в составе EDT) – которое (расширение IDE) могло бы управлять новыми видами элементов проекта - генерируя классические выходные метаданные для загрузки в платформу (и в конфигуратор; без поддержки оных самим конфигуратором) - сценарий интересный, но трудно представить что кто-то за него возьмётся в ближайшие лет десять, по крайней мере, пока EDT не станет популярнее, чем конфигуратор (и не будет ему ни в чём ступать, по крайней мере при разработке управляемых приложений, ну разве что в скорости EDT наверняка всегда будет медленнее, классического конфигуратора)

3. Создание внешнего препроцессора для конфигурации (для классического конфигуратора, или для EDT - это не важно), который на основе, скажем, XML схем будет их объединять, совершать кодогенерацию и встраивать результат в целевую конфигурацию (через загрузку файлов) - этот сценарий проще 2-го, такой препроцессор сделать не очень сложно, но, хорошо бы ещё иметь визуальный редактор для XML схем - в принципе это всё можно налабать на 1С, а для препроцессора хорошо подойдёт OneScript движок). Другое дело, что таким решением пользоваться будет менее удобно (чем встроенным в IDE) - как минимум возникает две конфигурации (хотя можно и одной обойтись - тут много вариантов как это всё организовать), одна из которых будет являться исходником, а вторая - целевой после генерирования – либо рабочей, либо тестовой, либо посредником между ними. Но вряд ли это будет популярное решение из-за его извращённости

4. Ограничится только библиотечным фреймворком внутри конфигурации. Этот вариант сильно урезан по возможностям, в первую очередь по оптимизации, но основные принципы ( по крайней мере для алгоритмов проведения) предложенного мной решения вполне реализуемы просто ручным разнесением алгоритмов по заданным секциям модулей, и соблюдением определённых правил (API) такого фреймворка. Это сценарий, близкий к тому, что сейчас делается в типовых конфигурация 1С, просто подразумевает более продвинутую структуру чётких правил и требований по их соблюдению. И главное - ориентированность на модульность исходных данных и то, что их "фабричное" состояние не является финальным, и конченый потребитель может их расширять и модифицировать в широком диапазоне, не изменяя напрямую код поставщика. Тут очень хорошо подойдёт парадигма аспектно-ориентированного программирования (ну или хотя бы применение стратегии DI - Внедрение зависимостей) - чего так не хватает конфигурациям 1С (ну а если бы стратегию АОО поддерживал язык платформы 1С, как, например, нативно поддерживает язык Eiffel или AspectJ (многие другие языки поддерживают хотя бы DI через библиотеки), было бы вообще очень круто).
Тут так же хорошо бы иметь какой-то визуальный генератор хотя бы начального шаблона - правил - который проще было бы уже потом соблюдать.
Эта стратегия не сложна - и вполне реализуем уже в этом десятилетии

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

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

Кстати говоря, данные варианты стратегий тоже могли бы быть прибыльными - т.е. можно разработать варианты, когда их внедрение могло бы принести доп доходы разработчикам - хоть это всё будет "от лукавого".


P.S.
Ну а вообще, говоря о сборке документов из операций, я имел в виду не только проведение. Но и формирование печатных форм, авто сборку интерфейсов форм, да и, вообще, сборку всего объекта метаданного (включаемая элементы хранения данных и прав доступа к ним). То есть предложенное мной решение - это прямая дорого к стратегии модульных конфигураций, имеющих принципиальное отличие структуры редактируемой конфигурации от конфигурации ИБ (конфигурация ИБ должна генерироваться путём сборки редактируемой конфигурации из множества отдельных составляющих, с отключением неиспользуемых элементов и блоков кода, и применением автогенерации, как алгоритмов, так и даже элементов метаданных; а в идеале ещё и с выполнением макроскриптов преобразований существующих метаданных и выражений кода и генерации новых по заданным шаблонам, параметрам, значениям функциональных опций, и анализу метаданных конфигурации).
Это всё возможно только в стратегия 1. и 2. (ну в 3. тоже возможно, но эта стратегия всё-таки подразумевает применение более простого препроцессора - так что в ней это всё только с ограничениями - а иначе - лучше переходить к стратегии 2.)

P.P.S.
Но да, это всё слишком круто для нынешнего платформы 1С Предприятие 8 - и компания 1С на это вряд ли решится в ближайшие десятилетия - они и так неплохо зарабатывают. Вот когда они нащупают пути расширения бизнеса - особенно в другие странны, тогда они, возможно, будут разрабатывать новый продукт - а-ля 1С: Предприятие 9, который изначально будут закладывать так, чтобы ему было чем потягаться с западными конкурентами. Вот там, возможно, и развернётся борьба за притязательного клиента, где нужно будет завлекать оригинальными фишками и не пасовать перед фишками, уже доступными в конкурирующих продуктах. Вот тогда, уже может и спадёт пелена консерватизма... Ну это уже не при братьях Нуралиевых случится...
Доживём?
35. Yashazz 2939 25.12.19 17:49 Сейчас в теме
(27) Люто плюсую. Плюс стопицот просто.
34. Yashazz 2939 25.12.19 17:47 Сейчас в теме
(23) Вот да. Мне тоже порой кажется, что некоторые фрагменты, найденные мучительными исканиями в ходе переделок БСП, надо бы методически унифицировать и воткнуть в платформу. В идеале некая 1С 9.0 вообще должна иметь промежуточный "слой" кода и абстракций, идеологически подобный нынешним предопределённым, которые есть как средства платформы, но можно менять. И контроль доступа, включая РЛС, и предполагаемые блокировки и дедлоки хотелось бы мониторить средствами платформы.
30. Summer_13 07.08.19 15:08 Сейчас в теме
Возможно я плохо смотрю,но не могу найти примера именно формирования таблицы движений из какой-то табличной части.Мне вот это более интересно.
31. skv_79 197 07.08.19 15:13 Сейчас в теме
(30) п.2 схемы проведения:
По параметрам этих процедур видно, что они одинаковые. И выполняют одинаковую цель - добавляют в тексты запросов для каждого из регистров, по которым будут сформированы движения, которые будут отражены в регистрах.
Названия у них, как правило: "ТекстЗапроса" + "Таблица" + ИмяРегистра, где ИмяРегистра - имя регистра, движения которого будут формироваться этим запросом.
32. Cyberhawk 118 02.09.19 17:08 Сейчас в теме
В Дополнительные свойства "ДляПроведения" вставляется свойство "РегистрыДляПроведения"
Походу опечатка
Оставьте свое сообщение

См. также

Подсистема учета характеристик. Стремление к совершенству 20

Статья Программист Нет файла v8 v8::ОУ v8::ПВХ УТ10 УУ Бесплатно (free) Чистка базы Практика программирования

Цель - почистить задвоенность характеристик и предотвратить дальнейшее ее появление.

16.12.2019    1830    Rustig    0       

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 17 февраля по 13 марта 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

[Шпаргалка] Программное создание элементов формы 338

Статья Программист Стажер Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом Разработка

Программное создание практически всех популярных элементов формы.

06.09.2019    16752    rpgshnik    43       

Агрегатные функции СКД, о которых мало кто знает 387

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    19864    ids79    45       

Перенос данных УПП 1.3 => ERP 2 (ЕРП) / УТ 11 / КА 2.х (обработка переноса документов, остатков и справочников из "1С:Управление производственным предприятием, ред. 1.3" в ERP / УТ 11 / КА 2). Обновлен до УПП 1.3.130.х, КА 2.4.11.х и ERP 2.4.11.х! Промо

Обработка позволяет переносить из УПП 1.3 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления при выходе новых релизов конфигураций 1С.

29700 руб.

Обмен данными. Консистентность vs Многопоточность 29

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Интеграция

Рассмотрим теоретические основы обмена данными. Какие бывают обмены, какие гарантии при этом даются, зачем идти на компромиссы и что при этом может пойти не так. Есть ли идеальная схема?

03.09.2019    5892    m-rv    1       

Чеки ККМ для расчетов с ИП по безналу. Новые обязательные реквизиты в чеке 32

Статья Программист Нет файла v8 v8::ОУ УТ11 УУ Windows Оптовая торговля Бесплатно (free) Практика программирования ККМ Разработка

Новые требования законодательства по пробитию чеков ККМ при расчетах с индивидуальными предпринимателями по безналу. Нюансы подключения интеграционной компоненты ДТО 10.5.0 на примере кассы ККТ АТОЛ 11Ф и конфигурации 1С УТ 11.4. Необходимые доработки типовой конфигурации УТ 11.4 для вывода на печать новых обязательных реквизитов: покупатель, ИНН, ГТД, страна происхождения.

22.07.2019    8853    ids79    16       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Выгрузка документа по условию 5

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    8617    m-rv    2       

Как настроить правильную техподдержку (helpdesk, service desk на коленке) 40

Статья Программист Бизнес-аналитик Руководитель проекта Нет файла v8 УУ Управление взаимоотношениями с клиентами (СRM) Документооборот и делопроизводство Монитор заказов Учет рабочего времени Бесплатно (free) Управление услугами и сервисом

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

24.04.2019    10271    siddy    0       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Как прикрутить ГУИД к регистру сведений 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    11512    m-rv    16       

Excel vs 1С: битва с неожиданным исходом 43

Статья no Нет файла v8 1cv8.cf Россия Бесплатно (free) Анализ учета Универсальные обработки Загрузка и выгрузка в Excel Финансовые Управленческие

Что лучше 1С или Excel? Разберемся, в казалось бы, очевидном, чтобы получить невероятное!

11.04.2019    29064    bolefirenko    109       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Остатки в подборе товаров в документ продажи по нескольким складам 2

Статья Программист Нет файла v8 v8::ОУ УТ11 УУ Оптовая торговля Учет ТМЦ Бесплатно (free) Практика программирования Разработка

Остатки в подборе товаров в документ продажи по нескольким складам без включенной опции «Реализация товаров с нескольких складов».

12.03.2019    3555    klepser    5       

Создание акта сверки для Управления торговлей с факсимиле 1

Статья Программист Нет файла v8 v8::ОУ УТ11 Россия УУ Windows Дебиторская и кредиторская задолженность Бесплатно (free) Практика программирования Разработка

Создание обработки на основании встроенной печатной формы для формирования акта сверки взаиморасчётов с факсимиле.

11.02.2019    3156    zemskov    0       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Копирование числовых ячеек из 1С в Excel 26

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel Администрирование данных 1С

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

15.01.2019    14255    itriot11    21       

Добавление ставки НДС 20% на старой УТ 11.0 за 2 шага 14

Статья Программист Нет файла v8::ОУ v8::УФ УТ11 Оптовая торговля, дистрибуция, логистика Россия НДС Бесплатно (free) Практика программирования

Предлагаю Вам небольшую инструкцию по добавлению ставки НДС 20% в старую "необновляемую" конфигурацию "Управление торговлей 11.0".

02.01.2019    14084    aximo    12       

Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0"). Обновлен до версий КА 1.1.115.х, УПП 1.3.130.х! Промо

Разработка позволяет перенести остатки по всем счетам бух.учета в программу "1С:Бухгалтерия предприятия 8", ред. 3.0 на выбранную дату начала ведения учета. Также переносятся документы за период и вся необходимая справочная информация. Правила оперативно обновляю при выходе новых релизов. Рассылка обновлений правил бесплатно в течение 12 месяцев. Есть видеодемонстрация проведения переноса данных. Конфигурации при использовании обмена остаются полностью типовыми. Перенос данных возможен в Бухгалтерию 3.0 версии ПРОФ, КОРП или базовую.

24700 руб.

Задача 1.13 1С:Специалист - запрос для отчета по стеллажам 8

Статья Программист Нет файла v8::ОУ Россия Бесплатно (free) Практика программирования Решение задач на 1С:Специалист

Описание подводных каменей отчета по стеллажам (задача 1.13 1С:Специалист) и способов их преодоления.

24.12.2018    5078    user913680    1       

Некорректно заполняются значения по умолчанию при создании документа. 1С: УТ 9

Статья Программист Нет файла v8 v8::ОУ УТ11 Россия Бесплатно (free) Адаптация типовых решений

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

21.11.2018    4639    yupi71    11       

INFOSTART MEETUP Krasnodar. 14 февраля 2020 г. Промо

Краснодар станет первым в 2020 году местом, где пройдет региональная встреча IT-специалистов сообщества Инфостарт. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Стоимость участия - 5000 рублей. Цена действительна до 26.12.2019.

Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке 529

Статья Программист Нет файла v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Зарплата Управление персоналом (HRM) Бесплатно (free) Универсальные функции

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

14.11.2018    44408    GeterX    94       

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 132

Статья Программист Нет файла v8 v8::blocking 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    25032    ids79    40       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

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

6500 рублей

Метрики, графики, статистика = Prometheus + Grafana 110

Статья Программист Нет файла v8 v8::ОУ Россия Бесплатно (free) Инструментарий разработчика

Снятие метрик из базы данных 1С с хранением в Phrometheus и красивое оформление на основе Grafana. Или как мы создавали комфортные условия административному персоналу на отдельно взятом складе.

23.10.2018    11903    197    freewms    75       

Фискальный чек из 1С:Управление торговлей 10.3 2

Статья Программист Нет файла v8::ОУ УТ10 Россия Кассовые операции Бесплатно (free) Практика программирования

Способ в фискальном чеке из документа "Реализация товаров и услуг" УТ 10.3. печатать "полный расчет" и "наличные".

16.10.2018    6117    rch    2       

Перенос данных КА 1.1 => ERP 2 (ЕРП) (обработка переноса документов, остатков и справочной информации из "1С:Комплексная автоматизация, ред. 1.1" в "1С:ERP Управление предприятием, ред 2"). Обновлен до КА 1.1.115.х и ERP 2.4.11.х Промо

Обработка позволяет переносить из КА 1.1 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления в случае выхода новых релизов конфигураций 1С.

29700 руб.

Вспомогательные инструкции в коде 1С 108

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    22910    tormozit    100       

Приемы работы с СКД: делаем за 5 минут то, на что у других уйдет час 386

Статья Программист Нет файла v8::СКД Бесплатно (free) Практика программирования

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

03.09.2018    35782    SergeyN    26       

Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.12.х и УТ 11.4.11.х! Промо

Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!

29700 руб.

Из Excel в 1С запросом 33

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

... ну, конечно, не прям так типовым языком запросов, а расширенным языком запросов. Речь пойдет о том, как "залить" данные в таблицы 1С и не пилить при этом бесконечного количества наколеночных обработок.

14.08.2018    15961    m-rv    5       

Разные хм... неожиданности при работе с УТ 11 и платформой 50

Статья Системный администратор Программист Нет файла v8 v8::ОУ УТ11 УУ Бесплатно (free) Практика программирования Адаптация типовых решений

По мере обнаружения буду писать сюда тонкости работы с УТ 11 и платформой, больше для себя, но, может, кому-то еще пригодится... Для нескольких вопросов предложены варианты обхода.

09.08.2018    13327    Kutuzov    27       

Базовый курс для начинающих 1С-программистов. Пятый поток. Онлайн-курс с 12 февраля по 15 апреля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500/9500 рублей

Тестер: частые вопросы 159

Статья Программист Бизнес-аналитик Нет файла v8 Бесплатно (free) Практика программирования

Ошибкам бой - тесты норма жизни!

25.07.2018    22859    grumagargler    24       

Согласование цен по заказу 5

Статья Программист Пользователь Нет файла v8 v8::ОУ УТ10 УУ Ценообразование, анализ цен Бесплатно (free) Практика программирования Бухгалтерский учет

Согласование цен по заказу покупателя - менеджер указывает цену с признаком "На согласование". Руководитель визирует "Согласовано". Полный контроль над ценами в два клика. Отдел продаж - 20 менеджеров, 1 руководитель.

03.07.2018    7748    Rustig    21