Печатные формы, расширения и изменения конфигурации: как не напороться на рифы необновляемой конфигурации 1С?
- Опубликовано 03.10.2022 09:37
- Просмотров: 2867
К сожалению, типовой функционал программ 1С не всегда удовлетворяет все запросы бухгалтера или директора. И тут на помощь приходят программисты, которые дописывают обработки, отчеты, расширения под желания своих заказчиков. А вы хоть раз задумывались, что общего у бухгалтера и программиста? Ведь на первых шагах своего взаимодействия они общаются одинаково… Первый со вторым, а второй с компьютером, так как будто последний ничего не знает и все указания воспринимает буквально. В этой публикации мы рассмотрим популярные изменения конфигурации: печатные формы (отчеты), расширения и другие изменения конфигурации, а также дадим рекомендации как не напороться на рифы необновляемой конфигурации.
Как говорил известный ученый и специалист по компьютерам Эдсгер Дейкстра «Если отладка – процесс удаления ошибок, то программирование должно быть процессом их внесения».
Для примера взаимодействия и упрощения терминов языка программирования представим, что пишем программу, указывающую компьютеру как приготовить бутерброд:
Программист: «Возьми хлеб!»
Компьютер: «Ошибка отладчика: «Я не понимаю, что такое возьми и хлеб».
Программист: «Протяни руку туда, куда я скажу и схвати то, что там будет!»
Компьютер: «Ошибка отладчика: «Я не понимаю, что такое рука!»
Программист (вздыхая): «Вот это штука (указывая на руку)».
Компьютер: «Понял».
Программист: «Протяни руку туда, куда я скажу и схвати хлеб!»
Компьютер: «Ошибка отладчика: «Я не понимаю, что такое схвати!»
Программист: «Протяни руку туда, куда я скажу и согни 5 пальцев вот так (показывает)»
Компьютер: Протягивает руку к хлебу, сжимает пальцы и разжимает (Хлеб остается на месте) …
«Дурацкий пример!» - скажете вы, но именно так или почти так строится первое взаимодействие: Компьютер (язык программирования) не может понять то, что программист в точности не определил, а любой процесс, который он пытается описать нуждается в полном и однозначном определении! Аналогично и при общении с бухгалтером это взаимодействие похоже на известную игру «Испорченный телефон».
Именно в этом и заключается сложность программирования: одна единственная неточная или ошибочная команда делает все программу нерабочей. Аналогично работает и при изменении команд.
Привыкнув к тому факту, что компьютер (программист) не способен читать ваши мысли, вы постепенно учитесь давать инструкции, которые программист (компьютер) сможет понять (выполнить).
Как автор статьи хочу немного добавить от себя: помню, как учился в ВУЗе писать программы на языке C++ и как расстраивался, когда много часов искал пропущенную точку с запятой, из-за которой не работала моя программа и вдобавок омрачали слова преподавателя: «Вы никогда не будете использовать пузырьковую сортировку в реальных программах, но мы все равно будем ее изучать согласно программы ВУЗа!».
Из вышеописанного примера появляется более понятное определение программирования (в отличие от описанного в учебниках) или постановки задачи: «определить начальную информацию (входную), установить последовательность шагов, точно описывающих действия компьютера с входными данными (алгоритм), и определить выходные данные (результат)».
Основной риф необновляемой конфигурации при доработках заключается в том, что затраты на обновление (трудовые и финансовые) становятся больше, чем польза от такого обновления, и зачастую решаются ручным вводом/заполнением/исправлением данных.
Все рифы необновляемой конфигурации легко обойти по карте, которая вырисовывается из вышеописанного определения программирования:
1. Дать верную (полную) входную информацию;
2. Дать верную (точную) последовательности шагов (алгоритм);
3. Обозначить верные (конкретные) выходные результаты.
Пройдемся подробнее по каждому пункту:
Верная входная информация для печатных форм заключается в:
• Определении источника для печати – документа и его конкретной формы или нескольких форм. Печатные формы (далее ПФ) в 1С привязаны к документу(ам), данные которого они выводят на экран в виде шаблона(таблицы) печатной формы из кнопки печать.
• Определении макета(ов) (шаблон или пример) печатной формы, с указанием полей, которые должны подставляться из 1С.
Верная последовательность шагов (алгоритма) для печатных форм заключается в:
• Определении вариантов подстановки полей, которые должны подставляться из 1С – какое поле брать для справочника (наименование или полное наименование), в каком падеже склонения выводить на макет.
• Определении неизменяемой части текста макета (шаблона или примера) печатной формы, в зависимости от операции документа или изменения других его реквизитов.
Верные выходные результаты для печатных форм заключается в:
• Определении размеров и параметров печати на принтере – умещать на одну страницу или переносить, сохраняя часть текста в заголовке, необходимость сохранять и конвертировать в другие форматы файлов Excel, Word и др.
• Видимость, доступность для разных пользователей в зависимости от их прав доступа.
Согласно принципу Парето, только 20% доработок имеют обоснование, а 80% делаются по незнанию типового функционала Заказчиком, или Исполнителем.
Далее рассматриваем эти 80% процентов:
1. Многие печатные формы типовых 1С доступны для редактирования пользователям и такие простейшие задачи как изменить шапку приказа (ссылку на унифицированную формы, шрифт, и другие элементы) решаются как в привычных офисных документах WORD(*.doc) и Excel (*.xls).
Редактирование макетов печатных форм (табеля, счета и акта) мы ранее уже рассматривали в статьях. Макеты открываются из раздела «Администрирование» и позволяют добавить/удалить/заменить данные в макете, добавить вычисляемое или логическое выражение, а также восстановить стандартные настройки макета, если изменения стали не актуальны.
2. В 1С: ЗУП КОРП ред. 3.1 часто возникает необходимость кадровикам создать какой-то отдельный приказ (награждение конкурса, организация спортивных и других мероприятий), которого нет в программе и при этом учитывать его и контролировать отсутствие дублей номеров, а также хранить копии шаблонов таких приказов для повторного использования. Тогда можно использовать механизм «Произвольные кадровые приказы» доступный из раздела настройка:
Каждый шаблон разрабатывает сам пользователь без привлечения программиста или наличия умения программировать:
♦ Перечисляя подставляемые поля приказа:
♦ Указывая как оформляется приказ: на каждого сотрудника или один на несколько сотрудников:
♦ Добавляя или разрабатывая с программистом внешнюю печатную форму, чтобы можно было распечатать и подписать или опубликовать приказ:
♦ Указывая подписантов:
♦ И используя этот шаблон для приказа, в котором подписанты заполняются актуальные на эту дату. И по кнопке «Создать на основании» можем создать документ «Премия», в котором указанные сотрудники будут заполнены автоматически:
Таким образом можно настроить аналогичные другие приказы, например, об организации мероприятий:
3. Настроить разные полномочия подписантов.
1С: ЗУП КОРП позволяет отразить:
– для разных документов – разные подписи,
– добавить для одного сотрудника разные доверенности с разными сроками действия,
– сменить подписанта.
Ответственные лица доступны из справочника организации на закладке «Учетная политика и другие настройки»:
Здесь же можно посмотреть основания полномочий ответственных лиц и показать неактуальные доверенности.
В документах подписанты подставляются автоматически. Если пользователю нужно выбрать другого подписанта, то программа спросит нужно ли запомнить данное изменение:
При наличии у подписанта нескольких доверенностей или же необходимости сменить доверенность, пользователь в самом документе выбирает основание и из списка требуемую доверенность:
Все правила настройки смены подписи сохраняются, а значит пользователь может изменить их под себя или очистить все настройки. В последнем случае пользователь получит в документах тех подписантов, которые указаны в организации:
Рифы необновляемой конфигурации при работе с расширениями и изменениями основной конфигурации работают аналогично, меняется только подход их применения.
Изменения основной конфигурации происходит под бизнес-требования пользователей программы и влекут за собой затраты на приведение в рабочее состояние изменений при каждом типовом обновлении программы.
Расширения конфигурации больше похожи на внешние отчеты или обработки, которые позволяют изменять типовую конфигурацию и хранить эти изменения не в самой конфигурации, а во внешних объектах (расширениях), тем самым позволяя обновляться на все типовые обновления программы. Однако это так же может требовать затрат на приведение в рабочее состояние изменений в расширениях после каждого нового обновления.
Расширения успешно работают с 2014 года и с каждым годом их функциональность становится богаче.
Чаще всего расширения используют:
• Для сохранения типового функционала и беспрепятственного обновления;
• Для раздельных настроек для каждого из филиалов, при режиме разделения данных;
• Для внедрений, когда доработки делаются под себя собственными ИТ-специалистами или специалистами Подрядчика;
Расширения не используют:
♦ Когда требуется добавить новые объекты конфигурации или изменять их тип данных;
♦ В старых конфигурациях, в которых механизм использовать невозможно;
На сайте 1С есть страница посвященная расширениям, там есть раздел «Назначение» и «Сценарии использования», можно ознакомиться с ними еще более подробнее.
Подведем итоги:
Подход к доработке 1С схож с двумя вопросами, которые задают себе спасатели перед началом спасательных работ:
1) Что грозит мне?
2) И что грозит им?
И если первая угроза больше, то спасатель ждет подмогу, чтобы не стать самому пострадавшим, ожидающим помощи.
Поэтому давайте разберем алгоритм доработок по возрастанию затрат и рисков:
1. Знать типовой функционал или обратиться к тому, кто знает, например, в наш закрытый клуб бухгалтеров, в котором мы отвечаем, как на вопросы учета, так и на вопросы владения программой, рассказываем о типовых возможностях программ и в самом крайнем случае рекомендуем обращаться за доработками.
2. Дорабатывать внешними объектами (отчеты, обработки, расширения).
3. Изменять основную конфигурацию следуя системе стандартов и методик разработки конфигурации от фирмы 1С.
4. После каждого обновления проводить аудит и решать требуется ли еще доработка или она уже реализована типовым механизмом и от нее следует отказаться, чтобы не платить за ее адаптацию с каждым обновлением.
Автор статьи: Сергей Барбатько
Понравилась статья? Подпишитесь на рассылку новых материалов