Написание конфигурации 1с с нуля пример. Выбор площадки для будущего функционала программы

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

Экономист, который в совершенстве владеет приемами работы только в табличном редакторе Excel, лишает себя возможности принять взвешенное решение при выборе платформы.

Расскажем о том, как разработать прикладное решение в системе 1С и сделать еще один шаг к заветному званию профессионала в своей области.

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

Рассмотрим, как создать прикладное решение на основе платформы «1С:Предприятие 8».

Предположим, на предприятии четыре производственных подразделения (цех 1, 2, 3, 4). Ежемесячно экономисту поступают докладные записки с данными о расходе электроэнергии и воды по каждому из цехов на основании показаний счетчиков.

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

Данное решение будет простейшим, но его создание позволит экономисту разобраться в «механике работы» системы «1С:Предприятие 8» и улучшит его понимание таких программных комплексов от компании 1С, как УПП и ERP.

К сведению

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

Перед тем как приступить непосредственно к созданию конфигурации, необходимо установить на компьютер саму платформу «1С:Предприятие». Есть 2 способа сделать это:

1) обратиться за помощью к системным администраторам (программистам) предприятия и установить лицензионный продукт (при его наличии);

2) воспользоваться бесплатным учебным комплектом «1С:Предприятие 8.3. Версия для обучения программированию», который можно загрузить из Интернета либо приобрести у фирмы — партнера компании 1С.

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

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

Если вы уже использовали продукты компании 1С, то догадались, что нужно создать два справочника.

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

  • временной период;
  • вид ресурса;
  • его расход в течение месяца;
  • цена единицы ресурса;
  • сумма.

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

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

Если вы все сделали правильно, новая информационная база появилась в списке.

Выбираем Учет ресурсов и запускаем Конфигуратор . Открываем дерево конфигурации, используя меню: Конфигурация Открыть конфигурацию (рис. 1).

Рис. 1. Дерево конфигурации

Кликом левой кнопки мыши выбираем Справочники и, вызвав контекстное меню, нажимаем Добавить (клавиша Insert ). Указываем имя для нашего первого справочника — Подразделения .

Заполним синоним, он будет использоваться в интерфейсе программы и демонстрироваться пользователю — Подразделения . Аналогично создадим еще один справочник с именем ВидыРесурсов и синонимом Виды ресурсов .

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

Павел Гришенков,
независимый консультант-эксперт по табличному редактору Excel

Материал публикуется частично. Полностью его можно прочитать в журнале

Сегодняшняя наша статья написана человеком, которого Вы, уважаемые читатели, уже знаете по . Его зовут Павел Гришенков.

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

Этот случай произошел прошлым летом в одном сельскохозяйственном холдинге нашего города. История умалчивает, кто испортил руководителю настроение еще с утра? Но жалоба главного бухгалтера на то, что сисадмины из дочернего «ООО» совсем обленились и не хотят выполнять свои обязанности, поставила решающую точку в этом вопросе!

Возмущаясь, директор ворвался к it-шникам и, бешено жестикулируя руками, сообщил, что it-подразделение переходит на хозрасчет. В связи с этим, программистам следует подготовить до понедельника (а была пятница, примерно 15:00) платформу для учета поступающих заявок и актов выполненных работ, на основании которых и предстояло с новой недели оплачивать их труд. После этого босс безапелляционно покинул помещение!

В помещении воцарилась тишина. Она стала особенно гнетущей, когда кто-то додумался посмотреть в Интернете значение слова - ХОЗРАСЧЕТ (ведение хозяйства какого-нибудь предприятия, производства на основе хозяйственной самостоятельности, самофинансирования, самоокупаемости и рентабельности). Так их маленькое «ООО», обслуживающее только компании из агрохолдинга, существовать не могло.

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

На общем срочном собрании программу «Excel» с макросами, как и прочие инструменты из пакета «Microsoft Office», отбросили сразу. Эти программные продукты позволяли быстро разработать необходимые бланки, но как их эффективно обрабатывать и учитывать за несколько месяцев или лет подряд не знал никто?

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

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

Далее запуск 1С:Предприятие в режиме конфигуратора. Открываем дерево конфигурации. Это - основной инструмент, с которым работает разработчик. Оно содержит в себе практически всю информацию о том, из чего состоит конфигурация.


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

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

Для нашего случая потребуется насколько таких объектов.


Рассмотрим подробнее механизм создания справочника на примере «Сотрудник»



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

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



Здесь отмечаем, что в справочнике будет присутствовать иерархия групп и элементов. Это необходимо для того, чтобы разнести ФИО сотрудников по организациям или отделам.

Вкладка «Данные».



Длину наименования увеличиваем до 50-ти символов. Создаем новую табличную часть. Для нас будет важно, не только ФИО сотрудника, но и организация, в которой он работает, должность и контактные данные (например телефон).

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

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

Вот такой у меня получился результат.



Возвращаемся вновь в конфигуратор.

Важное отступление. Когда разработчик работает с основной конфигурацией, система всегда подсказывает ему, отличается ли его вариант конфигурации от того, который сохранен, и отличается ли сохраненный вариант основной конфигурации от конфигурации базы данных. В первом случае это - признак модифицированности конфигурации (*), во втором - знак отличия конфигурации (!).

Во-вторых , для нормальной работы нашей системы потребуются документы . Объект конфигурации «Документ» является прикладным и предназначен для описания информации о совершенных хозяйственных операциях или о событиях, произошедших в жизни организации вообще. Документ обладает способностью проведения (оперативное и неоперативное).



Для будущей конфигурации потребуется два документа: «Заявка» и «Акт выполненных работ ». Второй рассмотрим подробнее.

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



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



В дальнейшем, чтобы упростить работу с конфигурацией и частично автоматизировать заполнение документов, можно выбирать значения цен на услуги IT-отдела из созданного периодического регистра сведений . Также следует обратить внимание на закладку «Модуль».

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

Благодаря коду можно, скажем, заставить программу при каждом изменении значений "Количества" или "Цены" на оказываемые услуги автоматически пересчитывать поле "Сумма". Но пока что оставим эту закладку пустой и, запустив отладку, перейдем в 1С:Предприятие.



В-третьих , нам потребуются регистры накопления. Отличительной особенностью регистра накопления является то, что он не предназначен для интерактивного редактирования. Его модификация производится на основе алгоритмов работы других объектов базы данных. Основным назначением регистра накопления является сбор числовой информации в разрезе нескольких измерений. В показанном примере измерениями будут выступать объекты "сотрудник" и "организация".



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

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

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



В результате работы конструктора автоматически сформировался следующий листинг



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



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

В-четвертых , для отображения результатов работы It-отдела потребуется создать несколько отчетов. Создание отчета начинается с создания новой схемы компоновки данных.



Добавляем новый набор данных - "запрос". Для того, чтобы создать текст запроса, запускаем конструктор запроса. В списке "База данных" представлены таблицы запросов. На основе их данных мы имеет возможность построить отчет. Если раскрыть ветку «Регистры/Накопления», то мы увидим, что там присутствуют реальные и виртуальные таблицы. Выбираем из них те поля, которые могут нам понадобиться.

Текст запроса, который был создан с помощью конструктора, платформа помещает в поле "Запрос". Это поле представляет собой простой текстовый редактор, в котором можно вручную отредактировать существующий запрос.



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

Все, можно запускать 1С:Предприятие в режиме отладки.



P.S. Для тех, кто заинтересовался написанием конфигурации на платформе 1С, прикладываю .

Построена простая конфигурация учета движения картриджей для лазерной техники в организации с использованием платформы 1С Предприятие 8.3 и интерфейса "Такси". Учитывается движение каждого картриджа (покупка, заправка, восстановление, ремонт, установка в принтер и пр.) и расход средств по каждому картриджу. Основная цель - освоить разработку приложений на базе платформы 1С Предприятие 8.3 на примере построения работоспособного и полезного приложения.

Я программист со стажем, но 1С серьезно раньше не занимался. Чтобы совместить приятное (знакомство с 1С Предприятие 8.3) с полезным (работу никто не отменял) попробуем построить работоспособную конфигурацию с использованием возможностей новой версии. Может быть процесс разработки конфигурации будет для кого-то полезным и поможет начинающим освоить 1С.

Работаю в отделе IT крупной организации с большим количеством лазерных принтеров и МФУ. Учет движения картриджей для них является актуальной задачей и требованием руководства.

Постановка задачи.

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

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

План реализации.

Используем платформу 1С Предприятие 8.3 как самую современную на текущий момент.

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

Предположим для начала, что в нашей конфигурации будут следующие объекты:

Справочники:

НоменклатураКартриджей

Картриджи

НоменклатураКартриджейЦены

Принтеры

Номенклатура Принтеров

Поставщики

Документы:

ПоступлениеКартриджей

ЗаменаКартриджа

СписаниеКартриджей

Перечисления:

ДаНет

СостояниеКартриджей

ПричиныЗаменыКартриджей

Регистры сведений:

КартриджиЗамена

Регистры накоплений:

КартриджиОплата

Алгоритм работы.

Основным «действующим лицом» является список имеющихся картриджей (Справочник Картриджи ). Изначально список заполняется документом ПоступлениеКартриджей НоменклатураКартриджей . При покупке картриджа значение реквизит Состояние в документе выбирается как Новый . Цена покупки определяется по справочнику НоменклатураКартриджейЦены натекущую дату СерийныйНомер ). Реквизит Местоположение определяется как «Склад» .

Учет заправок, восстановления, ремонта и пр. существующих уже картриджей осуществляется также документом ПоступлениеКартриджей . Тип картриджей определяется по справочнику НоменклатураКартриджей . Состояние картриджа определяется из перечисления СостояниеКартриджей . Цена работы (заправка, восстановление) определяется по справочнику НоменклатураКартриджейЦены . Уникальность картриджа определяется его серийным номером (реквизит СерийныйНомер ).

При проведении документа ПоступлениеКартриджей в табличную часть ЗаменаКартриджей справочника Картриджи добавляется строка с реквизитами текущего документа и у соответствующих картриджей (с серийным номером из документа) в справочнике Картриджи меняется значение реквизитов Состояние и Местоположение .

Кроме того, в регистрнакоплений КартриджиОплата

Учет замены картриджа в конкретном принтере (справочник Принтеры ) осуществляется документом ЗаменаКартриджа . В документе указывается текущий принтер. Уникальность принтера определяется реквизитом СерийныйНомер . Указывается устанавливаемый и заменяемый картридж (серийные номера картриджей).

При проведении документа ЗаменаКартриджа в табличной части справочника Принтеры у текущего принтера добавляется строка с реквизитами документа и изменяется реквизит Картридж . В справочнике Картриджи у текущих картриджей меняется значение реквизитов Состояние и Местоположение . Для установленного картриджа в реквизите Местоположение прописывается текущий принтер, а у снятого картриджа - «Склад» .

Кроме того, в регистр КартриджиЗамена заносится движение по данному документу.

Списание картриджей осуществляется отдельным документом СписаниеКартриджей .

Таким образом, в текущий момент времени в справочнике Картриджи каждый картридж имеет вполне определенное состояние (новый, заправленный, пустой и пр.) и определенное местоположение («Склад» или конкретный принтер), что путем несложных отчетов позволяет оценить наличие картриджей с заданным состоянием и сделать вывод о необходимости покупки, заправки и пр. Ну и учесть расходы естественно.

Реализация.

Приступим собственно к конфигурированию.

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

Сначала добавим перечисления: ДаНет , СостояниеКартриджей и ПричиныЗаменыКартриджей , которые нам понадобятся в дальнейшем. Состав перечислений виден на Рис.2

Сконфигурируем простые справочники НоменклатураКартриджей и НоменклатураПринтеров.

Реквизиту ТипКартриджа в справочнике НоменклатураПринтеров присвоим тип ссылка на справочник НоменклатураКартриджей (Рис.3). Не забываем, что все сформированные нами объекты конфигурации надо включить в состав подсистемы УчетКартриджей .

В справочнике Принтеры несколько реквизитов имеют тип ссылки:

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

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

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

Наконец, для учета поступления картриджей заводим регистр накопления КартриджиОплата с измерениями, ресурсами и реквизитами (Рис.10).

В закладке Регистраторы указываем наш документ ПоступлениеКартриджей . Сохраняем конфигурацию.

Возвращаемся по дереву объектов в документ ПоступлениеКартриджей . На закладке Движение выбираем регистр КартриджиОплата , запускаем Конструктор движений и заполняем поле Выражение значениями реквизитов документа (Рис.11).

Жмем ОК и попадаем в Модуль объекта программный код (Рис.12).

Теперь самое интересное - надо добавить в Модуль объекта программный код, для обеспечения следующего функционала при проведении документа ПоступлениеКартриджей .

При поступлении нового картриджа (покупка) в справочнике Картриджи должна добавляться строка с уникальным номером картриджа и соответствующими (из документа) реквизитами. При этом реквизит СостояниеКартриджа будет иметь значение «Новый » , а реквизит Местоположение - значение «Склад ». Табличная часть справочника Картриджи при этом не заполняется.

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

При поступлении заправленного тонером (восстановленного, отремонтированного и пр.) картриджа считается, что картридж с таким номером уже есть в справочнике Картриджи , и в этом случае при проведении документа ПоступлениеКартриджей, добавляется строкав Табличную частьЗаправки и меняются значения реквизитов Местонахождение и Состояние у текущего картриджа. Добавленный в Модуль объекта код показан на Рис.13.

Теперь можно провести первую пробу работоспособности программы. В Предприятие создаем документ ПоступлениеКартриджей (Рис.14). Нажимаем кнопку Провести и закрыть . Переходим в справочник Картриджи и видим, что в нем появилась строчка с реквизитами купленного картриджа с пустой табличной частью(Рис.15).

Откроем регистр КартриджиОплата (пункт в меню Регистр оплаты картриджей ) и увидим там аналогичную строку.

Создаем и проводим второй документ ПоступлениеКартриджей с тем же картриджем, но заправленным (Рис.16).

Переходим в справочник Картриджи и видим, что у заведенного нами картриджа добавилась строчка в табличной части Заправки и изменился реквизит Состояние (Рис.17).

Ура! Программа работает!

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

Это будет позднее, а сейчас займемся заменой картриджей - создадим документ ЗаменаКартриджа и соответствующий регистр сведений КартриджиЗамена .

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

Для учета замены картриджей заводим для разнообразия регистр сведений (не регистр накоплений) КартриджиЗамена с измерениями и реквизитами (Рис.19). Получилось пока без ресурсов как-то.

В закладке Регистраторы указываем наш документ ЗаменаКартриджа .

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

Теперь добавляем в Модуль объекта программный код, для обеспечения следующего функционала при проведении документа ЗаменаКартриджа . В справочнике Принтеры для принтера, у которого заменяется картридж должна добавиться строка в табличной части ЗаменаКартриджей со значениями реквизитов из документа и изменится значение реквизита НомерКартриджаСейчас. В справочнике Картриджи у снятого и установленного картриджей изменятся значения реквизитов Местоположение и Состояние . Доработанная процедура обработки проведения документа ЗаменаКартриджа показана ниже.

Процедура ОбработкаПроведения(Отказ, Режим)

// используемые справочники

Принтеры = Справочники.Принтеры;

Картриджи = Справочники.Картриджи;

// конец вставки используемые справочники

// регистр КартриджиЗамена

Движения.КартриджиЗамена.Записывать = Истина ;

Для Каждого ТекСтрокаНоменклатураДокумента Из НоменклатураДокумента Цикл

Движение = Движения.КартриджиЗамена.Добавить();

Движение.НоменклатураКартриджей = НоменклатураКартриджа;

Движение.СнятКартриджНомер = ТекСтрокаНоменклатураДокумента.СнятКартриджНомер;

Движение.УстановленКартриджНомер=

Движение.МодельПринтера = МодельПринтера;

Движение.ПринтерСерийныйНомер = ТекСтрокаНоменклатураДокумента.ПринтерСерийныйНомер;

Движение.ПринтерИнвентарныйНомер =

Движение.ТипКартриджа = ТекСтрокаНоменклатураДокумента.ТипКартриджа;

Движение.ЗаменаКтоДелал = ЗаменаКтоДелал;

Движение.ПричинаЗамены = ТекСтрокаНоменклатураДокумента.ПричинаЗамены;

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

СтрокаНаименования = ТекСтрокаНоменклатураДокумента.ПринтерСерийныйНомер;

Тогда ТекущийОбъект =

Принтеры.НайтиПоРеквизиту("СерийныйНомер",СтрокаНаименования).ПолучитьОбъект();

ТекущийОбъект.НомерКартриджаСейчас =

ТекСтрокаНоменклатураДокумента.УстановленКартриджНомер;

НоваяСтрока = ТекущийОбъект.ЗаменаКартриджей.Добавить();

НоваяСтрока.ДатаЗамены = Дата;

НоваяСтрока.ВидКартриджа = ТекСтрокаНоменклатураДокумента.ТипКартриджа;

НоваяСтрока.НомерУстановленногоКартриджа =

ТекСтрокаНоменклатураДокумента.УстановленКартриджНомер;

НоваяСтрока.НомерСнятогоКартриджа =

ТекСтрокаНоменклатураДокумента.СнятКартриджНомер;

НоваяСтрока.КтоЗаменил = ЗаменаКтоДелал;

НоваяСтрока.ПричинаЗамены = ТекСтрокаНоменклатураДокумента.ПричинаЗамены;

ТекущийОбъект.Записать();

КонецЕсли;

// изменяем справочник Картриджи - установленный картридж

СтрокаНаименования = ТекСтрокаНоменклатураДокумента.УстановленКартриджНомер;

тогда ТекущийОбъект =

Строка = " ";

Строка = Строка + МодельПринтера + " " +

ТекСтрокаНоменклатураДокумента.ПринтерСерийныйНомер + " " +

ТекСтрокаНоменклатураДокумента.ПринтерИнвентарныйНомер;

ТекущийОбъект.МестоНахождения = Строка;

ТекущийОбъект.Записать();

КонецЕсли;

// снятый картридж

СтрокаНаименования = ТекСтрокаНоменклатураДокумента.СнятКартриджНомер;

Тогда ТекущийОбъект =

Картриджи.НайтиПоРеквизиту("Номер",СтрокаНаименования).ПолучитьОбъект();

ТекущийОбъект.МестоНахождения = "Склад";

ТекущийОбъект.Состояние = Перечисления.СостояниеКартриджа.Пустой;

ТекущийОбъект.Записать();

КонецЕсли;

// конец изменения справочников

КонецЦикла;

КонецПроцедуры;

Для проверки заполняем и проводим документ ЗаменаКартриджа (Рис.21) . Заходимв справочник Принтеры и видим, что у выбранного принтера добавилась строка в табличную часть Заправки с реквизитами проведенного нами документа и реквизит НомерКартриджаСейчас принял значение номера установленного картриджа (Рис.22).

В справочнике Картриджи у картриджа, установленного в принтер, в реквизит Местоположение записались данные текущего принтера (Рис.23) . И кроме того в регистр сведений КартриджиЗамена записалось движение по документу (Рис.24)

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

С точки зрения «идеологии» 1С наверно неправильно изменять реквизиты справочников проведением документов, использовать справочник для хранения текущих цен - тут сказывается предыдущий опыт работы с таблицами автора статьи, а чем справочник не таблица?

Естественно требуется доработка функциональности, добавление отчетов, исправление ошибок и отладка. Об этом в следующей части статьи.

Полная версия статьи приведена в файле Часть1.doc

Быстрая пошаговая демонстрация разработки приложения на платформе 1С:Предприятие 8.3. Для выполнения примера нам понадобится платформа 1С:Предприятие 8.3. На нашем сайте вы можете скачать , предназначенную для обучения. Данная демонстрация подготовлена с использованием именно такой версии!

Пошаговый пример является полным аналогом . Данный пример позволяет продемонстрировать как отличия, так и сходства платформ 1С 8.3 и 8.2.

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

Каждая конфигурация должна храниться в отдельном каталоге (папке).

1. Создайте новую папку на любом диске нашего компьютера, например, "C:\Наши кадры 2".

2. Запустите 1С:Предприятие 8.3. Откроется список информационных баз. Если вы не создавали ни одной информационной базы и не добавляли существующие базы, то список будет пустым.

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

4. В следующем шаге укажите путь к папке, которую вы создали в 1 пункте нашего руководства (C:\Наши кадры 2). Нажмите кнопку "…", войдите в папку и нажмите "Выбрать".

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

6. Выберем режим запуска "Конфигуратор". Для этого нажмем на кнопку «Конфигуратор».

1С может запускаться в двух режимах:

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

7. Так как в созданной папке пока ничего нет, то 1С запросит подтверждение на создание новой информационной базы.

8. Нажмите "Да". Далее выбираем вариант "Создание информационной базы без конфигурации для разработки новой конфигурации или загрузки выгруженной ранее информационной базы" (2 вариант) и нажмите кнопку "Далее". На следующем шаге нажмите кнопку "Готово".

9. Запустится конфигуратор. Откройте дерево конфигурации, в котором мы будем работать очень часто. Для этого выберите в меню "Конфигурация" - "Открыть конфигурацию" или нажмите на соответствующую пиктограмму.

Появится окно дерева конфигурации. Задайте ему удобные размеры.

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

Создание объектов конфигурации

10. Установите курсор на строку "Справочники" и щелкните кнопку (или щелкните правой кнопкой мыши и выберите Добавить). При этом откроется Окно редактирования объекта конфигурации (своеобразный конструктор для создания справочника).

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

11. На первом шаге (вкладке) задайте "Имя" нашего справочника (идентификатор), например, "Должности". После ввода Имени нажмите на клавиатуре клавишу "Enter", либо переместитесь мышкой на следующее поле. На основании "Имени" система автоматически создаст "Синоним".

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

Относитесь к "Имени" справочника очень серьезно. Имя должно быть лаконичным, понятным, отражающим суть справочника, например: "Страны", "Сотрудники", "Товары" и т.д.

Имена объектов конфигурации, реквизитов, переменных, процедур и функций в 1С могут содержать буквы русского и английского алфавитов (строчные и прописные), символы подчеркивания и символы цифр. Имя не может начинаться с цифр.

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

У каждого справочника есть уже заранее заданные (предопределенные) два поля "Код" и "Наименование". Вы можете редактировать длину наименования, длину кода, а также тип кода: "Число" или "Строка".

13. Закройте Окно редактирования справочника "Должности".

14. Создадим новый справочник "Сотрудники" (см. пункт 10).

Задайте имя справочника (идентификатор) "Сотрудники".

Задайте длину наименования 100 символов.

В наименовании у нас будет храниться ФИО сотрудника. Иногда бывают довольно длинные имена и фамилии, так что 100 символов в самый раз.

15. В этом справочнике кроме уже заданных полей (Код и Наименование) у нас будет еще несколько полей (реквизитов, атрибутов). Сейчас список дополнительных реквизитов (полей) у нас пустой. Нажмите кнопку "Добавить".

В результате откроется окно редактирования свойств реквизита (палитра свойств). Кстати, реквизит, атрибут и поле - это в принципе одно и то же. Просто в терминологии 1С принято использовать "реквизит".

16. Задайте в палитре свойств имя реквизита - "Должность". Укажите тип реквизита - "СправочникСсылка.Должности", который мы создали раньше. Это говорит о том, что значения данного реквизита будут выбираться из справочника "Должности". Закрываем окно палитры свойств.

17. Создайте реквизит "Оклад" (тип Число, Длина 10, Точность 2). У значения типа "Число" точность указывает на количество знаков после запятой (в нашем случае 2 знака).

18. Создайте реквизиты ДатаПриема и ДатаУвольнения (тип Дата).

19. Теперь у нас есть два справочника и можно ввести некоторые данные.

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

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

20. Запустите систему в режиме 1С:Предприятие. Это можно сделать прямо из Конфигуратора, нажав на панели инструментов на или клавишу F5. Появится окно 1С:Предприятия.

21. Откройте справочник Должности. Для этого щелкните в панели навигации (в левой части окна приложения) по надписи (ссылке) Должности. Откроется окно справочника.

22. Введите несколько должностей, используя кнопку или клавишу INS. Например, директор, бухгалтер, программист.

Заметьте, что коды присваиваются автоматически, хотя их можно редактировать. При этом необходимо соблюдать уникальность кодов. Параметры уникальности можно настраивать в конфигураторе, например можно вообще отключить контроль уникальности кода.

По умолчанию установлена сортировка по Наименованию. Это позволяет набрать первые буквы названия должности, и курсор автоматически перейдет на нужную должность. Можно установить и другой тип сортировки: по коду или по реквизиту. Для этого достаточно щелкнуть левой кнопкой мышки по названию (заголовку) реквизита.

23. Откройте справочник Сотрудники.

24. Заведите нескольких сотрудников. Например, Иванов Иван Иванович - директор, Петров Петр Петрович - бухгалтер, Сидоров Сергей Сергеевич - программист. Заполняем только реквизиты Наименование (ФИО) и Должность. Заметьте, что при указании должности открывается справочник Должности. Для сохранения нового элемента справочника (новой записи) нажмите «Записать и закрыть».

25. Закройте окно 1С:Предприятие и вернитесь в режим Конфигуратора.

В реальной жизни принятие сотрудника на работу производится кадровым документом "Приказ о приеме на работу". Это мы и реализуем во 2 части нашего Пошагового примера.

Вес процесс можно условно разбить на этапы:

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

Идея, я считаю, самое главное для сегодняшнего софта.

Выбор площадки для будущего функционала программы

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

У всех способов есть свои плюсы и минусы:

Получите 267 видеоуроков по 1С бесплатно:

  • встраиваемый функционал — позволяет клиенту «улучшить» текущую конфигурацию без перехода на новую. Это достаточно удобно. Однако на практике грамотно встроить конфигурацию может далеко не каждый программист 1С. Сильно может ограничивать функционал типовой конфигурации;
  • отдельная конфигурация — более функциональный вариант, проще в разработке. Но клиенту придется целиком переходить на новую конфигурацию.

Кстати, при разработке конфигурации с нуля настоятельно рекомендую использовать специальный инструмент — . Библиотека позволяет не тратить время на разработку с нуля стандартных процедур и функций, а заниматься только «спецификой» конфигурации.

Описание модулей, написание ТЗ

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

Непосредственно разработка конфигурации с нуля

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

Тестирование конфигурации

У ежика есть иголки, а в программном коде есть ошибки.

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

Установка защиты на конфигурацию

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

Оформление авторских прав на конфигурацию и получение «1С Совместимо»