gifts2017

Универсальная учетная система с конструктором документов и справочников в режиме 1С: Предприятие

Опубликовал Дмитрий Воронцов (informa1555) в раздел Программирование - Инструментарий

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


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

Конструирование документа и конечный результат

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

Примеры открытия "справочников"

Также в документе надо прописать заполнение реквизитов при выборе и расчет зависимых реквизитов, например, сумма = цена*количество. У каждого элемента виртуального справочника могут быть произвольные реквизиты – аналогично типовым конфигурациям. В конструкторе можно задать заполнение этого произвольно реквизита в создаваемый документ. Например, я создал в «номенклатуре» реквизит «Цена» и сделал, чтобы он заполнялся при выборе номенклатуры.

И, собственно, для каждого документа нужно описать движения. Каждое движение – это одна строчка. Модуль проведения каждого вида документа намеренно прост. Я считаю, что проведение должно быть максимально простым, а все необходимые данные для движений должны быть подготовлены в табличной части. Например в реализации и перемещении в ТЧ присутствует партия и сразу себестоимость (скрыта в форме) – т.е пользователь выбрал партию, себестоимость зафиксировалась и, сколько документ ни проводи, ничего не поменяется. Движения можно делать по регистру остатков, оборотов и сведений – все как в обычных конфигурациях.

Конструирование движений и пример движений

 

Отдельно стоит упомянуть режим подбора из остатков – его также можно конструировать. Я сделал подбор остатков партий, чтобы считать себестоимость. Его можно использовать для подбора, например, заявок на расходование ДС под платежи, кредитных документов и т.д.

Для примера я сделал в конструкторе несколько характерных документов для УТ – поступление, перемещение, реализация, ПКО. Это заняло меньше 5 минут. Документы двигаются по регистру остатков товаров по складам, в котором сразу себестоимость (кстати себестоимость получается сразу), по взаиморасчетам, вспомогательным для аналитики регисрам Продажи, Закупки, Остатки денежных средств. 

Чего тут не хватает для полноценной системы?

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

Для чего это нужно?

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

Продолжение темы :

http://infostart.ru/public/388479/


 

Группа для вопросов-ответов, пожеланий, обмена опытом: http://infostart.ru/community/groups/1183/ 

 

UPD 30.07.2015 Добавил базу с демо-примером и правила обмена для переноса настроек 

UPD 12.08.2015 Выложил демо базу с новой конфигурацией (убрал отдельно CF т.к. его можно взять из базы):

-добавлена проверка обязательных полей

-обработчики заполнения табличных частей

-названия таб частей

-количество таб частей увеличено до 3-х


Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ДемоБаза с примером (обновлено 22.08.15)
.dt 136,34Kb
22.08.15
83
.dt 136,34Kb 83 Скачать
Правила обмена XML для переноса настроек
.xml 44,24Kb
30.07.15
36
.xml 44,24Kb 36 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Игорь Пашутин (Alien_job) 30.07.15 08:03
Звучит отлично. И потом можно развивать этот костяк расширениями.
2. Дмитрий Воронцов (informa1555) 30.07.15 10:57
Спасибо. У меня такие же мысли по этому поводу. Если людям понравится и будет полезно то тут еще можно развивать и развивать. Идей куча.
3. Алексей Драчков (Bassgood) 30.07.15 11:04
(0) Еще можно прикрутить сюда же возможность прописывать произвольные алгоритмы на встроенном языке для различных событий, например, таких как "Перед записью", "Обработка проведения" и т.д.
Подобный аналог подсистемы, но более функциональный и гибкий, используется в конфигурации "БИТ:ФИНАНС КОРП", в ней есть практически все для этих целей - начиная от конструктора структуры документов и описания алгоритмов заполнения как самого документа, так и его движений по произвольным регистрам, заканчивая формированием отчетов по этой подсистеме.
4. Фантаев Сегрей (serg1983) 30.07.15 11:22
Bassgood, (3)
Добавить CRM 2.0 идею построениеБизнесПроцессов.
Почту, КонструкторПечатныхФорм и на Продажу.
Но боюсь уйму времени уйдет на отлатку и оптимизацию.

Я думаю на рынке нужен такой проект.
mulla1979; +1 Ответить
5. Игорь Steelvan (Steelvan) 30.07.15 11:22
6. Sergei (kauksi) 30.07.15 11:45
Идея отличная. меня интересует в плане моделирования справочников динамически, то есть в режиме 1с. Нечто подобное видел в Инталев: корпоративный менеджмент
7. anry mc (AnryMc) 30.07.15 11:54
Сколько видел "универсальных" решений, типа "Инталев...", "БиТ..." и пр. и пр.

Что бы в них что-то создать более менее серьёзное, "пользователь" должен:
1) обладать умениями и навыками "моделирования" бизнес процессов
2) отлично знать и разбираться в учетных механизмах (бухгалтерия, зарплата, складской учёт, производство, расчет путевых листов и куча других - по нужному профилю)
3) изучить "с нуля" новую для себя "среду разработки". Т.е. данное "универсальное решение". И не зная всех его идеологических и технологических нюансов (а они никогда не могут быть полностью описаны) набить некоторое количество "шишек" которые для остальных пользователей обернуться кучей "перепроведений" и "перезаполнений".

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

ЛИЧНО МОЁ МНЕНИЕ: Это только маркетинг. Так как купленное "универсальное решение" внедряется не силами покупателя или путем увеличение его штата нужными специалистами....

ЗЫ Не совсем к данной публикации - но накопилось ;-)
Eldar_Umerov; orientir1C; ox-mag; KSy; Zeskord; CrazyCD; tormozit; mtv:); Tavalik; mvgfirst; rimma_n; lefthander; mmch; wolfsoft; poisonapple; Yashazz; orfos; rustork; spy-83; cool.vlad4; +20 Ответить 5
8. Дмитрий Воронцов (informa1555) 30.07.15 12:26
9. Дмитрий Воронцов (informa1555) 30.07.15 12:38
(7) AnryMc, Еще к минусам вышеперечисленных конструкторов можно добавить закрытые участки кода. Делаешь делаешь внедрение, вдруг бац надо сделать проводку а конструктор это не умеет или глючит и ты такой лезешь в модуль поправить а его нет. И ты понимаешь что толку от того что ты до этого сделал на конструкторе - ноль и надо все писать самому, а время потеряно. Сам на эти грабли наступал с БИТфинансом.

oleg212; spy-83; cool.vlad4; AnryMc; +4 Ответить 2
10. anry mc (AnryMc) 30.07.15 12:44
(9) informa1555,
Аналогичные "грабли"
11. Константин Куликов (Светлый ум) 30.07.15 13:24
Только для демонстрации "приблизительной схемы работы" +1
SkyHunter; lefthander; rustork; TomskTNP; +4 Ответить
12. Фантаев Сегрей (serg1983) 30.07.15 13:39
(7) AnryMc,
Не знаю по мне такое решение имеет смысл.
Да конечные пользователи не смогут и не будут в этом копаться и разбираться.
Но ситуация немного другая.
1. Многим пользователям 1с не нужен весь функционал Торговли 11, или даже розницы 2.0.
А тут набросал им то что они хотят и пользуйтесь, захотели ещё, что то добавил.
2. Идеальный вариантом для данной конфигурации хорошо бы создать Выгрузку загрузку шаблонов.
Что имеется ввиду - это создать набор документов, справочников движений для учета склада кладовщику,
после выгрузить в шаблон. Создал шаблон менеджеру, снабженцу. После клиенту составил нужную программу учета
из шаблонов.
13. Ийон Тихий (cool.vlad4) 30.07.15 13:43
(9) informa1555, да даже открытый код не гарантия. бывает открываешь, копаешь, копаешь, копаешь и потом понимаешь, что проще было самому сделать, более простой вариант, но работающий. а все из-за сложности написанного или из-за качества сложности написанного.
(7) AnryMc, абсолютно согласен. имхо вариант таких вещей возможен и жизнеспособен для случаев кодогенерации более простого.
14. anry mc (AnryMc) 30.07.15 14:12
(12) serg1983,
Что имеется ввиду - это создать набор документов, справочников движений для учета склада кладовщику, после выгрузить в шаблон.

У Инталева - есть/были шаблоны
(12) serg1983,
Не знаю по мне такое решение имеет смысл.

Вопрос зачем "конструктор" если всё равно нужен специалист но "заточенный" под это решение
Не проще ли сделать функционал более богатый - а программистов 1С "для рихтовки" под клиентов - достаточно
ВЫВОД: Кстати это ещё один метод защиты своей прибыли и отсев конкурентов - т.е. "покупатель" "универсального решения" найдет клиентов только у продавца!!!
15. Дмитрий Воронцов (informa1555) 30.07.15 14:21
(12) serg1983, Добавил для скачивания правила для переноса шаблонов - обычные правила для универсального обмена XML. Спасибо за подсказку.
16. Фантаев Сегрей (serg1983) 30.07.15 14:35
(14) AnryMc,
Покупатель может и не покупать у продавца.
Он может нанять Специалиста, или купить себе другую конфигурацию, что то подобие УПП и тратить время как же его отработанный механизм работы организации приспособить или перестроить для работы программы.
17. Франко Деллиани (Franco) 30.07.15 15:54
ОООООООООООО, si! Est моё решение такое же было на 7.7! Всего 2 документа в торговой программе - движение товаров и движение денег. При их создании выбирается направление движения, которое и указывает что куда проводить.
Есть даже торговец финиками-орешками, который по сию пору работает на ней и даже слышать ничего не хочет о переходе на другую версию - настолько всё шустро у него летает.
informa1555; serg1983; +2 Ответить
18. Ярослав Радкевич (WKBAPKA) 31.07.15 10:11
все новое - это хорошо забытое старое :)
19. Николай Крылов (Nikola23) 02.08.15 20:20
(7) AnryMc,
Автомобиль - то же универсальное решение и что бы научиться им управлять, а тем более - настраивать, необходимо либо потратить много времени, либо много средств.

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

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

Знаю по себе.
Я работаю внедренцем 8мь часов в день. Закрываю в среднем 170 часов.
Есть вопросы - спросите меня "как".
informa1555; +1 Ответить
20. Яков Коган (Yashazz) 03.08.15 11:22
Делал такие ещё на 7.7, совершенно реальная вещь и идея отнюдь не нова. Проблема лишь одна - вы не автоматизируете предприятие, а даёте кому-то в руки просто более другой инструмент той же автоматизации; эдакая 1С в 1С. И тут нужны толковые методисты и просто спецы, чтобы таким супер-универсалом грамотно воспользоваться, иначе это мертворожденный мини-конфигуратор и всё. Опыт показывает, что при отсутствии грамотных товарищей, умеющих применить сей инструмент, он бесполезен.
21. Юрий Муллабакиев (mulla1979) 03.08.15 14:44
Где то здесь уже было похожее решение...
22. mixsture 05.08.15 08:04
Добавлю также к недостаткам:
1) производительность. Наверняка все справочники развернуты в плоскую таблицу, где 1 строка представляет 1 реквизит конкретного справочника. И уж в любом случае все справочники лежат в 1 таблице друг с другом. Какие там индексы, в какие из них попадет программа при соединении в запросе? очень туманно.
2) формы. При наличии элементов на форме больше 20 начнутся проблемы с тем, как же все это компактно показать - понадобятся вкладки и прочие возможности конфигуратора.
3) обмен данными. Конвертация данных увидит эту странную таблицу, где смешаны все справочники, но вот как превратить это все в нормальный объект? Это будет на порядок сложнее.
А что с синхронизацией по УИДам 1 элемента справочника? а скорее всего у нас нет УИДа элемента - у нас есть уид каждого реквизита :)
4) обязательные поля для заполнения. Видимо их никак не указать.
5) зависимые поля (вспоминаем Номенклатуру и Характеристику в типовых). Пользователю будет неудобно выбирать характеристику без отбора по владельцу.
6) расширяемость с точки зрения пользователя. Вот набросали вы решение на этом конструкторе, взяли с клиента 10 тыс руб. Затем клиент хочет добавить особое заполнение одного документа на основе 2х других - в его понимании это довольно простое действие и оно не будет стоить много, а у вас оно не вписывается в конструктор - и стоимость выйдет высокая, т.к. это либо грязный хак, либо переписывание в обычный конфигуратор всего решения.
lefthander; +1 Ответить 1
23. Антон Рощин (wolfsoft) 05.08.15 08:16
24. Сергей Кошкин (KoshkinSM) 05.08.15 10:55
Трудно даже представить что будет, если после реализации какого-то документа и ввода данных по этой структуре Вы решите изменить эту структуру (чисто гипотетически). Настройка обменов между базами тоже весьма проблематична.
25. Дмитрий Воронцов (informa1555) 05.08.15 11:58
(22) mixsture,

Спасибо за конструктивную критику. Отвечу:

Добавлю также к недостаткам:
1) производительность.

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

Давайте подумаем о том, зачем в типовых конфах овер20 реквизитов на форме? Может таким образом 1С реализует свой вариант универсальности в типовых конфах? Может 1С, выпуская ERP, УТ11 и т.д. хочет чтобы ее конфа из коробки подходила для большего количества предприятий и пихает кучу реквизитов из которых на данном конкретном внедрении не использутеся половина?
3) обмен данными
.
Согласен и не согласен. Я уже писал обмен под реальные условия. С одной стороны проще т.к. 1 в 1 , с другой надо помнить реквизиты. Это же касается разработки отчетов.
А что с синхронизацией по УИДам 1 элемента справочника? а скорее всего у нас нет УИДа элемента - у нас есть уид каждого реквизита :)
У справочника есть УИДы . Т.е. у каждого элемента будь то контрагент, номенклатра и т.д. есть свой УИД.
4) обязательные поля для заполнения. Видимо их никак не указать.

Я это не реализовывал, но наверно сделаю. Это просто.
5) зависимые поля (вспоминаем Номенклатуру и Характеристику в типовых).

это сейчас тестирую - попросили. В конфк это уже есть справочник "Агрегаты", подчиненный справочнику "Ресурсы" но не доведен до ума. Сейчас доделал.
6) расширяемость с точки зрения пользователя. Вот набросали вы решение на этом конструкторе, взяли с клиента 10 тыс руб. Затем клиент хочет добавить особое заполнение одного документа на основе 2х других - в его понимании это довольно простое действие и оно не будет стоить много, а у вас оно не вписывается в конструктор - и стоимость выйдет высокая, т.к. это либо грязный хак, либо переписывание в обычный конфигуратор всего решения.

конфа открытая, бесплатная и простая как хозяйственное мыло. Там реально мало программинга.Любой начинающий программист разберется. Фишка больше в архитектуре. Я сделал, применил и увидел что результат превзошел мои ожидания. Обрадовался. Решил поделиться на инфостарте.
Chernik; kote; bidond; Steelvan; MRAK; +5 Ответить
26. spec spec (Spec1c82) 07.08.15 13:27
А можно архивом все 3 файла выложить?
27. Дмитрий Воронцов (informa1555) 07.08.15 16:38
(26) Spec1c82, Конфу можно не скачивать, а выгрузить из базы (dt).
28. spec spec (Spec1c82) 07.08.15 17:01
(27) informa1555, Да то понятно. Хотел еще глянуть на правила обмена. Впрочем дт-шку уже скачал.
29. Вадим Латышев (pro1c@inbox.ru) 09.08.15 22:44
А печатные формы документов подключаются стандартно или также свой механизм?
30. Дмитрий Воронцов (informa1555) 10.08.15 07:27
(29) pro1c@inbox.ru, Я использовал БСП но не стал это выкладывать т.к. не уверен что это не нарушает лицензию, всё-таки БСП - продукт 1С...
31. Vladimir Vasiliev (vasvl123) 03.01.16 07:33
Если сделать конвертер для перевода виртуальной конфигурации в обычную, то данную разработку можно было бы использовать как конструктор конфигураций.
informa1555; +1 Ответить 1
32. Дмитрий Воронцов (informa1555) 09.01.16 11:47
(31) vasvl123, Хорошая идея. Если бы 1С ещё что то типа XAML использовала вместо своих управляемых форм... Может дойдёт до этого - было бы проще.
33. Андрей Бавский (bas_nsk) 09.06.16 09:40
Реализовал у себя на предприятии похожую идею. Началось с того что понадобилось хранить в учетной системе разнородную информацию , с разными наборами реквизитов.
Сделал универсальный справочник, для примера внес некоторые реальные данные, записал что то типа видео урока и выложил на корп. сайт. Идея оказалась очень удачной. Туда стали вбивать чуть ли не все подряд.. Потом реализовал и универсальный документ и универсальный отчет, движения по регистрам. Элементы справочника могут быть периодическими.
В настоящее время в системе около 40 видов справочников и документов.
Ко мне как к разработчику и методисту общаются не часто, чаще просят добавить какой нибудь функционал. Сейчас в разработке механизм автозаполнения вычисляемых полей и создание документов по результатам расчетов.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа