1С  | 8.1 | 8.2 | 8.3 | -> Модули.

“Трудность работы с програмистом заключается в том, что вы не можете понять что он делает до тех пор пока не стало слишком поздно.”
- Seymour Cray

Модули -> Проект "ЗУП ОФК Банк".

К СПИСКУ РАЗДЕЛОВ

Очень большой проект, разработка длилась 1.5 года. За это время удалось решить все основные проблемы связанные с переходом на ЗУП 3.0, полностью перейти к учету в ЗУП 3.0, разработать большое количество дополнительных печатных форм, разработать и наладить обмен с другими системами банка, расширить типовые расчеты и авто-формирования документов, разработать полностью новый функционал, который требовался для бизнеса. В последствии, удачно был выполнен переход на редакцию 3.1 и далее редакцию 3.2. При этом срок подготовки обновления занимал 3-5 рабочих дней.

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

|   Список изменений в конфигурации   |

Подсистема - Общие

В эту подсистему вынесены дополнительные настройки, универсальный отчет и отчет по доработкам и т.д.. Рассмотрим основные пункты этой подсистемы:

1. Универсальный отчет - это типовой отчет 1С по регистрам, справочникам и документам, который по умолчанию не доступен.

2. Отчет по доработкам - показывает какие объекты были добавлены в систему, какие изменены, а так же что самое важное - короткое описание доработки.

|   Код к отчету по доработкам   |

3. Справочник руководители - в нем можно указать конкретного руководителя у сотрудника, или руководителя подразделения в котором, на момент формирования данных, находится сотрудник. Справочник используется для различных выгрузок и отчетов.

4. Процент расчета аванса - в этой настройке указывает % расчета аванса, настройка используется при расчете аванса.

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

|   Код к форме справочника видов операций   |

Подсистема - Рассылки

В эту подсистему входит четыре раздела - расчетные листы, уведомления об отпусках, ФОТ, состояния сотрудников (работа, отпуск, больничный и т.д.). Рассылка данных осуществляется на внутреннюю почту, справочник сотрудников в IBM Lotus или личные кабинеты в IBM Lotus. Каждый раздел содержит свою встроенную справку в формате pdf. А так же по каждой выгрузке пишется история в регистры сведений. Разберем подробней:

1. Рассылка расчетных листов - обеспечивает автоматическое формирование расчетных листков в формате pdf и рассылку этих данных на почту сотрудникам, руководителям, а так же данные дублируются в личном кабинете. Сами расчетные листки получаются из типового отчета - АнализНачисленийИУдержаний, через механизм СКД. При этом обеспечивается синхронность данных, т.е. то что мы видим в отчете "Зарплата -> Отчеты по зарплате -> Расчетный листок", то же самое и отправляется сотруднику. Далее общий отчет как бы "нарезается" на отдельные отчеты по каждому сотруднику, такой алгоритм обеспечивает быстроту выполнения, по сравнению с формированием СКД для каждого сотрудника. Сам расчетный листок был то же доработан, в нем выводится дополнительная информация по резервам, общем облагаемому доходу.

|   Код рассылки расчетных листков   |

2. Уведомления об отпусках - данные заполняются автоматически в соответствии с графиком отпусков (с учетом переносов). Далее в зависимости от настроек формируется два файла Word - уведомление об отпуске и приказ. Эти документы созданы на основании шаблонов word и при формировании параметры в этих шаблонах подставляются. При чем используется механизм склонений, т.е. фио, подразделение, должность и т.д. подставляются в нужном падеже. Дата выхода на работу рассчитывается автоматически исходя из графика работы сотрудника. Так же в обработку встроен мини отчет на СКД, которые показывает за период кому положен отпуск и в колонке рядом отметка о рассылке.

3. Рассылка данных по ФОТ и анализ ошибок. Подробное описание данной обработки можно почитать на этом сайте в разделе 1С |8.1|8.2|8.3| -> Дополнительные обработки.

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

|   Код выгрузки состояний сотрудников   |

Подсистема - Расширенные остатки отпусков

Цель подсистемы - расширить учет остатков отпусков. Прежде всего добавляется учет в разрезе рабочих периодов. Рабочие периоды в типовой системе как бы были, но больше как дополнительная информация, информационный характер. Другой минус типового алгоритма заключается в том, что 1С построила расчет остатков отпусков на основании регистра ЗаработанныеПраваНаОтпуска, который постоянно обновляется! т.е. при формировании типового отчета "остатки отпусков" записи по сотруднику удаляются и заново рассчитываются. Это при водит к большим проблемам, например после одного обновления рабочие периоды сдвинулись на пару дней, сама 1С объяснила это доработкой алгоритма расчета и учла високосные дни, но в документах на отпуск уже выводился другой рабочий период. Другая проблема, если сотруднику внести отсутствие по невыясненной причине, то при этом рабочий год в системе сдвигается на кол-во дней этого отсутствия, а дальше создается документ, например больничный, при этом рабочий период так часто и зависает не верный. Итог - рабочий период есть, как поля информации, а вот учета и нормальных отчетов - нет.

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

|   Код процедуры актуализации   |

2. Как такового партионного учета отпусков в 1С - нет и система не контролирует ситуацию, когда, например, сотрудник уходит в отпуск на 7 дней, но 3 дня по остаткам из одного рабочего периода, а 4 дня из другого. Система обычно автоматически подставляет в документ - рабочий период по последнему году, или сразу два года, что не верно. При этой ситуации необходимо создавать два документа отпуска, на каждый рабочий период. Поэтому документ отпуска был доработан. Жесткого запрета проведения в документе нет, но информационное сообщение выводится.

3. Так же был разработан удобный отчет по анализу остатков отпусков в разрезе рабочих периодов. Этот отчет не просто выводит данные, но стыкует закрытые рабочие периоды с текущими данными в типовых регистрах, т.е. определенная дельта расхождения в днях в зависимости от точности расчетов. Так же, если ранее были документы отпусков с рабочим периодом в два года, или даже три, то отчет распределяет эти дни пропорционально закрытым рабочим периодам по годам. Точность этого отчета 95%. Большинство сотрудников обрабатывается корректно.

|   Запрос и код к отчету анализ остатков отпусков   |

4. В дополнение, была реализована обработка по рассылке остатков отпусков в личные кабинеты сотрудников. Для каждого сотрудника формируется файл excel с его остатками.

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

Подсистема - Долгосрочные обязательства

Подсистема для расчета обязательств которые принимаются к учету. Например сотруднику предполагается выплата через год - 500тр. С учетом различных экономических показателей (текучесть кадров, вероятность дожития, ставка дисконтирования) рассчитывается вероятность этой выплаты через год. Далее рассчитывается сумма обязательства (резерва), которое будет принято в момент заведения приказа, так же рассчитываются затраты и на налоги в ПФР. Эта сума автоматически отражается в бухгалтерском учете. Часть суммы сразу к учету не принимается, а рассчитывается и принимается к учету пропорционально - ежемесячно. В конце срока сумма планируемой выплаты полностью будет на резерве. Далее автоматически оформляется планируемая выплата (документ 1С - Премия), резерв закрывается.

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

Примеры кода:

|   Пример №1   |   Пример №2   |   Пример №3 |  

Подсистема - Расчет аванса и выплата з/п

В разработке ...

Подсистема - Контроль премий

В разработке ...

Подсистема - Антегра: ЗУП КУ

В разработке ...

Блок бухгалтерских отчетов и обработок

В разработке ...

Блок кадровых отчетов и обработок

В разработке ...

Блок обработок для автоматизированного сокращения

В разработке ...

Расширения:

Расширения решено было разбить, т.е. по одному для каждого объекта, а не одно большое. При этом обеспечивается удобство совместной разработки, динамического обновления, и включения / отключения функционала. Очень часто после обновления расширение слетает, так вот, если расширение одно, то отключится весь функционал и найти при этом в каком объекте ошибка - проблематично. Когда расширение разбиты на объекты, эти проблемы решаются на много легче и быстрей. Всего было разработано 21-о крупное расширение. При этом 1С постоянно улучшает этот механизм и в перспективе с помощью него можно будет создавать полноценные системы, без внесения изменений в типовую конфигурацию. Ниже приведено несколько примеров расширений.

Примеры кода (общие модули):

|   Пример №1   |   Пример №2   |   Пример №3   |   Пример №4   |

Некоторые дополнительные отчеты (трудовой договор, оценочные обязательства остатки и обороты, список граждан для сверки с военкоматом, проверка данных физических лиц) и обработки (распределение по статьям финансирования, автоматическое создание справок 2-НДФЛ, тестовый расчет среднего заработка, менеджер выгрузки проводок в RSBank, рассылка и анализ кадрового ФОТ, загрузка доходов получаемых по вкладам в банке) можно посмотреть в соответствующих разделах 1С на этом сайте.

К СПИСКУ РАЗДЕЛОВ

“Анализ компьютерных систем - это как воспитание детей; можно нанести огромный вред, но нельзя гарантировать успех.”
- Tom DeMarco

Модули -> Проект "ЗУП ЦИУС".

К СПИСКУ РАЗДЕЛОВ

Доработка и внедрение ЗУП 3.0 (корп).

Большой и сложный проект по переходу с 1С 7.7 на ЗУП 3.0 (корп) для организации ЦИУС ЕЭС. Изначально начинали делать проект другие разработчики и не очень удачно. Сдача работ клиенту происходила поэтапно и с трудностями, так как клиенту важно каждое слово, каждая цифра, и что бы нужные им отчеты или расчеты не просто работали, но и были удобными.

Пример доработок в системе:
- изменен алгоритм построения типового интерфейса (для кадровиков, доступна панель отчетов зарплаты и другие изменения);
- изменен алгоритм определения стажа;
- изменен алгоритм расчета НДФЛ для меж-расчетных документов;
- изменен алгоритм выплаты з/п;
- изменен алгоритм отражения зарплаты в бухгалтерском учете;
- изменен алгоритм работы с уволенными (когда после увольнения сотруднику несколько месяцев рассчитывают квартальные или годовые премии, расчет и выплаты компенсации при сокращении);
- изменен алгоритм расчета и выплаты аванса;
- доработан алгоритм расчета среднего заработка (сохраняется типовой вариант, но добавляется расчет по окладу, изменение периода расчета среднего в зависимости от доходов, для сотрудников которые были в декрете);
- доработал алгоритм расчетов (когда расчет какого-то показателя в формуле начисления программируется отдельно);
- доработан типовой алгоритм формирования отчетов (есть типовые отчеты, например Отчет.АнализНачисленийИУдержаний, у этого отчета нет форм, реквизитов и табличных частей. Есть только СКД и макеты. При этом отчет подключен к типовому механизму построения отчетов. Т.е. при открытии собирается общая форма, инициализируются параметры, варианты и другие настройки. Запрос для СКД так же собирается через общие модули. Так вот доработка механизма заключается в том, что добавляются нужные реквизиты, изменяются или добавляются исходные данные и при компоновке результата в зависимости от настроек происходит перехват и формируется отчет по форме, которая нужна клиенту);
- отчеты по форме клиента включенные в типовой механизм (расчетный листок, расчетная ведомость, свод, штатная расстановка и другие);
- разработка новых ролей;
- разработка новых документов, справочников, регистров сведений;
- разработка дополнительных отчетов (планирование затрат на персонал, отчет по резервам отпусков, карточка сотрудника и другие) и печатных форм (кадровые приказы и другие);
- разработка дополнительных обработок (Рассылка табеля учета рабочего времени Т-13 и другие);
- разработка различных корректировок перенесенных данных, или дозагрузок;
- разработка выгрузки в банки и другие системы.

Скриншоты:

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

Примеры кода (общие модули):

|   Пример №1   |   Пример №2   |   Пример №3   |   Пример №4   |

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

К СПИСКУ РАЗДЕЛОВ

“Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.”
- Donald E. Knuth

Модули -> Учет планово-экономической деятельности.

К СПИСКУ РАЗДЕЛОВ

Большой и сложный модуль по учету планово-экономической деятельности, встроенный в типовую конфигурациию 1С: Бухгалтерия государственного учреждения, редакция 1.0. Описать весь его не получится, и легче это понять на схемах автоматизации ниже, на скриншотах. Общий смысл в следующем - есть много подразделений, которые могут находится в разных зданиях. У каждого подразделения есть подребности, как в обычных канцтоварах, так и каких сторонних работах. Есть центр, в котором эта информация обрабатывется, согласуется, анализируется. Общие заказы объединяются и выставляются на торги общей суммой. Сбор информации осуществялется путем загрузки данных из excell шаблонов, которые заполняются в подразделениях.

Скриншоты:

Примеры кода:

|   Пример №1   |   Пример №2   |
К СПИСКУ РАЗДЕЛОВ

“Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.”
- Brian W. Kernighan

Модули -> Учет по общежитию.

К СПИСКУ РАЗДЕЛОВ

Этот модуль встроен в типовую конфигурациию 1С: Бухгалтерия государственного учреждения, редакция 1.0. В модуле реализованна возможность расчета, контроля и оплаты за ЖКУ с разбивкой по проживающим. В бухгалтерии отражаются типовые проводки сводно по дому, без разбивки. Разработанный документ начисления полностью автоматизированн, и позволяет удобно просматривать и контролировать получившиеся данные. Выплату можно производить как частями, так и переплатой, причем выплата закрывается по месячно автоматически. Как пример за январь начисленно 600 руб, за февраль 500 руб, сотрудник вносит 1000 руб, так вот закрывается 600 руб, и 400 из февраля, т.е. по февралю образуется задолженность 100 руб. Для контроля данных разработанны отчеты, как с разбивкой по месецам, так и вообщем за период.

Скриншоты:

Примеры кода:

|   Пример №1   |   Пример №2   |
К СПИСКУ РАЗДЕЛОВ

“Сначала учите науку программирования и всю теорию. Далее выработаете свой программистский стиль. Затем забудьте все и просто программируйте.”
- George Carrette

Модули -> Служба доставки, редакция 1.0.

К СПИСКУ РАЗДЕЛОВ

Дополнительный модуль по учету работы курьеров, но вообщем можно использовать для учета работы различных направлений. Разработанн модуль под Web-интерфесом, и предназначен для работы в интернете. Суть задачи в следующем - есть разработка под обычным интерфейсом, в которой работают операторы, менеджеры и руководитель. Данный модуль встроен в обычную конфигурацию, и позволяет заказчикам просматривать выполняемую работу в онлайн режиме. Причем заказчики имеют доступ только к части информации, а не ко всей базе. Так же каждый заказчик, видит только информацию по нему. Реализован этот механизм без создания дополнительных ролей, а на уровне программного кода. Заказчик имеет возможность формировать заявки, а так же новые кленты имеют возможность онлайн регистрации в системе. Минусом этой системы, на данный момент (2014 год), является, то что web-приложение работает не под всеми браузерами, а так же не работает на планшетах и смартфонах.

Скриншоты:

Примеры кода:

|   Пример №1   |   Пример №2   |
К СПИСКУ РАЗДЕЛОВ

“Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.”
- Linus Torvalds

Модули -> Вещевка.

К СПИСКУ РАЗДЕЛОВ

Дополнительный модуль "Вещевка". Полностью отдельный модуль от типовых конфигураций 1С, но при этом продуман интелектуальный механизм обмена с типовой конфигурацией 1С: Бухгалтерия государственного учреждения, редакция 1.0. Обмен данными осуществляется путем прямого подключения к 1С, т.е. без промежуточных файлов выгрузки и загрузки. При обмене данными в бухгалтерии формируются общие документы по списанию вещей, а из бухгалтерии загружаются данные по поступлению. Так же стыкуются данные по справочникам номенклатуры и МОЛ (ЦМО). В самом модуле поступление делится по военнослужащим (сотрудникам), а в бухгалтерии вообщем по складам, подразделениям и т.д. Далее происходит контроль износа, когда положенна следующая выдача, что положенно выдать, приостановки сроков износа, замены, списания. При загрузке и выгрузке данные справочников и документов повторно не создаются, т.е. реализован контроль на всех этапах обмена. Арматурная карточка обладает удобным интерфейсом, в котором есть жестко закрепленная левая (вещь и описание нормы) и правая части (осталось выдать на дату расчета). Середина динамическая часть и строится в соответствии с настройками, в ней может быть показано различное кол-во лет исходя из математических расчетов. Редактирование выдачи осуществляется по нажатию кнопок "..." в нужной ячейке.

Скриншоты:

Примеры кода:

|   Пример №1   |   Пример №2   |
К СПИСКУ РАЗДЕЛОВ

“В теории, теория и практика неразделимы. На практике это не так.”
- Yoggi Berra

Модули -> Учета выплат.

К СПИСКУ РАЗДЕЛОВ

Скриншоты:

Примеры кода:

|   Пример №1   |   Пример №2   |   Пример №3   |
К СПИСКУ РАЗДЕЛОВ

“Если называть Python заменой BASIC, то тогда и трансформер Optimus Prime — это только замена грузовика.”
- Cory Dodt