История одной конфигурации

28.11.12

Сообщество - О жизни

История разработки конфигурации по учету договоров или как я учился программировать в 1С

Скачать исходный код

Наименование Файл Версия Размер
Учет договоров 8.1
.cf 161,57Kb
50
.cf 161,57Kb 50 Скачать бесплатно
Учет договоров 7.7
.MD 292,50Kb
14
.MD 292,50Kb 14 Скачать бесплатно

Эпизод I. Скрытая угроза

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

Фирма начала искать варианты и в конце концов, через знакомых, нашла меня. На тот момент в моем послужном списке был один год работы в семерке и полгода в восьмерке, после универа. С опытом, проще говоря, было туговато, зато энтузиазма хоть отбавляй. Хотелось заниматься чем-то более интересным, чем поддержка БП и ЗУП. Обсудив с заказчиком условия задачи и поняв, я понял, что реализация мне по плечу. В фирме уже была приобретена БП 1.6, поэтому площадкой для разработки была выбрана платформа 1С: Предприятие 8.1.

Изначально требовалось разработать следующий функционал:

  • справочник "Договоры";
  • документ, позволяющий проводить оплаты по договорам;
  • документ для отражения расходов офисов;
  • несколько отчетов (собственно, ради них все и затевалось), позволяющих увидеть список заключенных договоров и оплат по ним, остатки наличности в офисах.
Планировалось, что все данные будет вводить менеджер в центральном офисе.
 
Эпизод II. Месть ситхам

Работу я начал в новогодние каникулы 2009 года и первую версию закончил через 2 недели. Уважаемый %username% может заметить, что разработать такую плюшевую конфигурацию, с учетом всех нюансов, можно за пару дней, и будет прав, отчасти. Но нужно учитывать, что я был начинающим разработчиком и опыта в создании конфигураций с нуля у меня было немного. Обучение программированию в среде 1С:Предприятие 8.1 шло на ходу. Мягко говоря, с технической точки зрения конфигурация представляла собой пособие "Как не надо программировать в 1С 8". Первая глупость, которая приходит на ум: были заведены 3 справочника "Ответственные лица", "Города", "Офисы", хотя нужно было всего лишь создать иерархический справочник и растолкать офисы по нужным папкам. Все отчеты были "стилизованы" под 7.7, потому что я еще не умел пользоваться такими замечательными и полезными вещами как консоль запросов, конструктор выходной формы и СКД. С языком запросов тоже были проблемы. Сейчас страшно смотреть на такой тихий уж0с как запрос в цикле! >_<

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

Эпизод III. Эволюция

Экономическая выгода проведенной автоматизации стала очевидной. У руководства фирмы возникло здоровое желание автоматизировать что-нибудь еще и конфигурация начала разрастаться. Постепенно были сделаны следующие доработки: 

  • реализован расчет сдельной оплаты менеджерам и монтажникам окон; 
  • добавлены разнообразные отчеты;
  • добавлен партионный складской учет и расчет производства жалюзи. Уже успел забыть, что разрабатывал этот модуль. А ведь расчетные формулы производства очень сложные и на реализацию было убито много времени;
  • обмен данными с офисами.
Со временем поднимался уровень моих знаний в программировании 1С и многие отчеты были переписаны. Например, очень нужный для работы "Отчет по договорам" изначально представлял из себя межгалактического монстра (без всяких зачеркиваний). После его запуска можно было смело идти пить чай. Вот так выглядел самый первый вариант отчета (привет из 7.7!):
 
 
Второй вариант я разработал с помощью конструктора выходной формы и использовал более адекватный запрос. Время формирования заметно уменьшилось, но теперь понятно, что и тогда он формировался медленно:
 
 
Постепенно такой переработке подверглись практически все отчеты. Искушенный %username% возмущенно воскликнет: "А где же СКД?" Спокойствие, только спокойствие! Разработка отчетов с помощью конструктора выходной формы была очередным этапом в моем изучении платформы 1С 8.1. Это сейчас мне лениво писать что-то ручками и все отчеты, по возможности, стараюсь делать в СКД, а тогда все было по-другому. Забегая вперед, выкладываю скрин последней версии отчета по договорам, уже из следующей версии конфигурации (на платформе 8.2):
 
 
Насколько расширилась конфигурации 8.1 можно увидеть, если сравнить интерфейс из самой старой выгрузки, которую смог найти:
 

и последней версии:

 

Эпизод IV. Атака клонов

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

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

Самым сложным моментом стала, конечно же, реализация обмена данныx. Стоит отметить, что интернет во многих офисах работал нестабильно и медленно. Поломав голову, я остановился на такой схеме: сотрудник в удаленном офисе вводит новые данные (в базу данных 7.7) и выгружает их в файл dbf. Затем этот файл прикрепляется к письму и отправляется на специально созданную электронную почту. В центральном офисе установлена программа The Bat!, подключенная к этому электронному ящику, которая автоматически сохраняет прикрепленные файлы в папку, откуда они загружаются в общую базу данных. Загрузку выполняет менеджер с помощью специальной обработки.

Внешний вид обработок для выгрузки договоров из базы данных 7.7:

Обработка, предназначенная для загрузки договоров, оплат по ним и расходов офисов в общую базу данных из файла dbf:

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

Эпизод V. Новая надежда

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

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

Интерфейс новой конфигурации:

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

Конфигурация получилась более универсальной, в отличие от старой версии для 8.1, которая была сильно заточена под учет конкретной фирмы. Более подробно познакомиться с ней можно в публикации

//infostart.ru/public/148455/

Эпизод VI. Эпилог

Уважаемый %username%, теперь и ты знаешь, что существовала такая конфигурация "Учет договоров" для 1С 8.1 и три года радовала заказчика своим существованием. И даже можешь скачать ее - файлы конфигураций 8.1 и 7.7 прикреплены к статье. За все время использования в базу было забито около 15 000 договоров.

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

Напоследок хочу привести несколько мотивирующих фраз, подходящих как к программированию, так и к жизни вообще:

  • Если хочешь, чтобы быстро было, медленно делай, но день каждый.
  • Завтра - неудачников слово, сегодня - победителей слово.
  • Сражение тот выигрывает, кто решил его выиграть твёрдо.
  • Если вы хотите великое что-то в день один прекрасный сделать, помните: день один прекрасный — сегодня это.
  • Дорогу идущий осилит.
  • ;)

Еще несколько мотивирующих фраз, оставленных в комментах:
 
  DoctorRoza: Путь в 10000 Ли начинается с малого шага (китайская пословица, оригинал).
 Дорога возникает под ногами идущего! 
 
  AnryMc:       Сегодня первый день твоей оставшейся жизни. Не теряй время даром. (В.М. Глушков – основоположник информационных технологий в СССР)

См. также.

О жизни Linux Системный администратор Программист Платформа 1С v8.3 Россия Бесплатно (free)

Использование Linux в качестве основной ОС для программиста 1С, возможно ли это? Решил поделиться личным опытом работы перехода на эту систему. В статье моя история без технических деталей максимально простым языком. И, спойлер, да, жизнь на Линуксе для разработчика 1С возможна и с каждым годом становится всё комфортней. Статья рассчитана на людей, с Линуксом не знакомых, специалистов прошу не кидаться помидорами.

16.05.2024    3784    soulner    32    

39

О жизни Россия Бесплатно (free)

Подводим итоги работы в 1С за 2023 год. Все о вас: 4 подробных раздела с цифрами, графиками и ужасными цветами диаграмм (должна же где-то быть стабильность).

08.02.2024    24245    Neti    85    

116

О жизни Бесплатно (free)

В процессе написания статей на тему Идеальное место работы ЗУПера нужен аргументированный текст про адекватного работодателя. Информации получилось много, поэтому выделю в отдельные 2 статьи. Рассмотрим все недостатки работодателей от момента собеседования до момента увольнения. Все этапы, как всегда, подкреплены реальными случаями из моего опыта.

22.01.2024    4360    biimmap    67    

72

О жизни Конфигурации 1cv8 Бесплатно (free)

В процессе написания статей на тему Идеальное место работы ЗУПера нужен аргументированный текст про адекватного работодателя. Информации получилось много, поэтому выделю в отдельные 2 статьи. Рассмотрим все недостатки работодателей от момента собеседования до момента увольнения. Все этапы, как всегда, подкреплены реальными случаями из моего опыта.

16.01.2024    5762    biimmap    99    

79

О жизни Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Импортозамещение увеличило потребность в архитекторах, аналитиках, разработчиках 1С, в т.ч. по ЗУП. Все их ищут всеми возможными способами, но не могут найти и не знают, чем же их завлечь к себе!? Давайте разберёмся в этом вопросе!

27.11.2023    4739    biimmap    52    

73

О жизни Сообщество Бесплатно (free)

Прочитав название публикации, мысль возникает о свадьбе... Но речь не об этом!

25.08.2023    2722    biimmap    24    

51

О жизни Россия Бесплатно (free)

«Многие кандидаты хотят от собеседования простую вещь: чтобы оно длилось пять минут и брали сразу на 300 000 в наносекунду», — Эльдар Мингалиев, разрабатывает новые форматы собеседований.

22.08.2023    14466    Neti    161    

108
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. script 128 07.09.12 00:38 Сейчас в теме
Ну что сказать - молодец.
Теперь осталось поместить на сайт 1С, в раздел
"Примеры усшешных внедрений".... кто смеется ?
2. KonstB 180 07.09.12 09:27 Сейчас в теме
За эволюцию - ПЛЮС (но как то попахивает рекламой :))

За это:
Если хочешь чтобы быстро было, медленно делай, но день каждый.
Завтра - неудачников слово, сегодня - победителей слово.
Сражение тот выигрывает, кто решил его выиграть твёрдо.
Если вы хотите великое что-то в день один прекрасный сделать, помните: день один прекрасный — сегодня это.
Дорогу идущий осилит.
;)


РЕСПЕКТ )))

Над обменом бы еще можно было подумать :)
3. amblik 07.09.12 09:39 Сейчас в теме
В погоне за похвалой лучшая приманка - скромность. (Филипп Дормер Стенхоп Честерфилд)
4. DoctorRoza 07.09.12 11:56 Сейчас в теме
Лично мне больше нравится:
Путь в 10000 Ли начинается с малого шага (китайская пословица, оригинал) или
Дорога возникает под ногами идущего!
А в целом .. респект!
5. Арчибальд 2707 07.09.12 12:14 Сейчас в теме
Как беллетристика - неплохо.
6. jONES1979 12.09.12 14:08 Сейчас в теме
С интересом прочитал, и предметная область близка, тоже вскоре предстоит подобное, так что публикация - очень кстати.
Ещё раз спасибо!
7. headMade 144 13.09.12 21:31 Сейчас в теме
а что конкретно (разделы) из библиотеки подсистем пригодились?
8. RuslanZ 412 14.09.12 08:01 Сейчас в теме
Использованы подсистемы: Адресный классификатор, базовая функциональность, контактная информация, настройка порядка элементов, обновление версии ИБ, пользователи, физические лица. Если бы делал снова, включил бы некоторые другие.
Созинов; +1 Ответить
9. Созинов 14.09.12 13:31 Сейчас в теме
Интересная статья, но не совсем согласен - что использование в филиалах 7.7 правильное решение (появление клонов), наверное лучше было заменить железо и все делать на 8-ке, хотя конечно вам виднее было, к тому же как говорите все хорошо заработало.
10. maxim305 18 14.11.12 10:36 Сейчас в теме
Спасибо автору! Замечательная статья, прям увидел в ней себя!
11. AnryMc 849 27.11.12 16:03 Сейчас в теме
Хочется добавить к мотивирующим фразам:

Сегодня первый день твоей оставшейся жизни. Не теряй время даром.

В.М. Глушков – основоположник информационных технологий в СССР
12. madonov 205 22.01.13 07:36 Сейчас в теме
Джедай верностью принципам обладать должен. И серьезным умом.
Оставьте свое сообщение