Разработка и Конфигурация · 12 мин
Как дописать программу 1С: практическое руководство по доработке
Как дописать программу 1С: доработка через расширения и конфигуратор, изменение форм, модулей и отчетов, проверка результата и типичные ошибки разработчика.
Дописать программу 1С означает изменить или расширить её функциональность под задачи конкретной компании: добавить реквизит в документ, изменить алгоритм расчета, вывести новую печатную форму или создать отчет. Сделать это можно двумя принципиально разными способами — через механизм расширений, не затрагивая типовую конфигурацию, или через прямую доработку конфигурации в конфигураторе. Выбор способа определяет, насколько болезненными будут будущие обновления и кто сможет сопровождать решение.
Прежде чем открывать конфигуратор, сформулируйте задачу предметно: какой объект меняется, какое поведение должно появиться, в каких сценариях это проверяется. Формулировка «допишите нам склад» превращается в недели переработок, а задача «в заказе покупателя добавить поле "Дата отгрузки по договору" и вывести его в печатную форму» решается за несколько часов. Чем точнее описан результат, тем меньше риск получить доработку, которая ломает смежные процессы.
Любая доработка начинается с резервной копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD или выгрузить базу через конфигуратор в файл .dt. Для клиент-серверной базы копию делает администратор средствами СУБД. Без проверенной копии, из которой реально восстановились хотя бы раз на тестовом стенде, изменять рабочую базу нельзя.
Определите, что именно нужно дописать
Первый шаг — классифицировать задачу. От этого зависит инструмент и объем работ. Типичные категории доработок: добавление реквизита в справочник или документ, изменение логики проведения, новая печатная форма, новый отчет, изменение интерфейсной формы, интеграция с внешней системой. Каждая категория имеет свою технологию и свои ограничения.
Проверьте, нет ли готового решения. Многие типовые конфигурации уже содержат нужный механизм, но он отключен функциональными опциями: зайдите в «НСИ и администрирование» и изучите настройки разделов. Дописывать код для того, что включается галочкой, — частая и дорогая ошибка. Также изучите типовые расширения от фирмы «1С» и отраслевые решения: возможно, задача уже решена и поддерживается разработчиком.
Зафиксируйте критерии приемки: на каких данных проверяется результат и как выглядит правильное поведение. Например: «при проведении реализации с видом операции "Комиссия" наценка рассчитывается от цены комитента, а не от цены продажи». Такая формулировка позволяет проверить доработку без участия разработчика.
Решается расширением без изменения кода
Потребуется переопределение процедур и тестирование на реальных данных
Проверьте наличие типовых планов обмена и HTTP-сервисов
Проверьте функциональные опции и права пользователей
Выберите способ: расширение или изменение конфигурации
Расширение конфигурации — механизм платформы, который позволяет добавлять объекты, реквизиты, формы и обработчики поверх типовой конфигурации, не снимая её с поддержки. Это основной рекомендуемый путь: база продолжает обновляться штатно, а ваши доработки применяются отдельным слоем. Создается расширение в конфигураторе: «Конфигурация» → «Расширения конфигурации» → «Создать».
Прямая доработка конфигурации требует снятия объектов с поддержки (или полного снятия конфигурации). Это оправдано, когда расширение не справляется: нужно изменить состав движений документа, поменять тип реквизита, перестроить роли и права на уровне метаданных, доработать объекты, которые расширения не поддерживают. Плата за это — сложные обновления: каждый релиз придется накатывать с сопоставлением изменений вручную.
Сравнение способов доработки
Подходит для реквизитов, форм, печатных форм, отчетов, обработчиков событий. Обновления типовой базы сохраняются. Ограничение: нельзя менять типы, состав движений и часть объектов.
Подходит для глубоких изменений логики, прав, регистров. Полная свобода, но обновления становятся ручными и трудоемкими.
Подходят для печатных форм, отчетов и разовых операций без изменения метаданных вообще. Подключаются через механизм дополнительных отчетов и обработок.
Если задача — только печатная форма или отчет, рассмотрите третий путь: внешнюю обработку, подключаемую через «Дополнительные отчеты и обработки». Вообще никаких изменений в конфигурации не потребуется, а форму можно будет обновлять простой заменой файла.
Подготовьте среду и сделайте копию
Для разработки нужен конфигуратор той же версии платформы, на которой работает база. Узнать версию можно в режиме «Предприятие»: «Сервис» → «О программе». Разработку ведите на копии базы, развернутой локально или на тестовом сервере, — никогда не в рабочей базе, где в этот момент работают пользователи.
Порядок подготовки копии файловой базы: закройте сеансы пользователей, в конфигураторе выполните «Администрирование» → «Выгрузить информационную базу», затем создайте пустую базу и загрузите в неё выгрузку через «Загрузить информационную базу». Проверьте, что копия открывается в режиме «Предприятие» и содержит актуальные данные.
Выполните доработку в конфигураторе
Откройте копию базы в конфигураторе. Если работаете через расширение — создайте его и добавляйте объекты туда. Если дорабатываете конфигурацию — сначала включите возможность изменения: «Конфигурация» → «Поддержка» → «Настройка поддержки» → «Включить возможность изменения».
Добавление реквизита
Найдите нужный объект в дереве конфигурации (например, «Документы» → «РеализацияТоваровУслуг»), откройте ветку «Реквизиты» и добавьте новый элемент с понятным именем и типом. Затем откройте форму документа и перетащите реквизит на форму. Проверьте, что реквизит сохраняется и отображается при повторном открытии документа.
Изменение логики через обработчики
В расширении типовую процедуру не редактируют напрямую — её заимствуют и оборачивают аннотациями &После("ИмяПроцедуры"), &Перед("ИмяПроцедуры") или &Вместо("ИмяПроцедуры"). Вариант «Вместо» полностью подменяет типовой код и ломается при изменении типовой процедуры в новом релизе, поэтому используйте его только когда «Перед» и «После» не подходят.
&После("ПриЗаписи")
Процедура Расш1_ПриЗаписи(Отказ)
Если Не ЗначениеЗаполнено(Комментарий) Тогда
Комментарий = "Проверено расширением";
КонецЕсли;
КонецПроцедурыПосле правок выполните проверку конфигурации: «Конфигурация» → «Проверка конфигурации», отметьте пункты проверки модулей и расширения. Затем обновите конфигурацию базы данных клавишей F7. Если платформа сообщает об ошибках реструктуризации — читайте их внимательно, а не подтверждайте вслепую.
- 1Сделайте выгрузку базы и разверните копию
- 2В конфигураторе копии создайте расширение конфигурации
- 3Добавьте нужные объекты, реквизиты или заимствованные процедуры
- 4Выполните проверку конфигурации и обновите базу данных (F7)
- 5Протестируйте сценарий в режиме Предприятие на копии
- 6Перенесите расширение в рабочую базу и проверьте на контрольном примере
Протестируйте результат до переноса в рабочую базу
Тестирование делается в режиме «Предприятие» на копии базы. Пройдите полный сценарий от начала до конца: создайте документ, заполните новые поля, проведите, сформируйте печатную форму и связанные отчеты. Проверьте не только новое поведение, но и то, что старое не сломалось: проведение смежных документов, закрытие периода, обмены.
Обязательно проверьте доработку под пользователем с ограниченными правами, а не только под полными. Частая ситуация: под администратором все работает, а у менеджера новый реквизит недоступен или процедура падает из-за недостатка прав на объект.
Как проверить результат
Сохраняется, виден после переоткрытия, попадает в печатную форму
Значение пропадает после записи или не выводится на печать
Движения по регистрам соответствуют ожидаемым, старые документы перепроводятся без ошибок
Проведение падает с ошибкой или формирует лишние движения
Все функции доступны с типовыми правами роли
Ошибки доступа или пустые данные у пользователей без полных прав
Расширение применяется без конфликтов после тестового обновления
Расширение отключается с диагностикой несовместимости
Перенесите доработку в рабочую базу
Расширение переносится файлом: в конфигураторе копии сохраните расширение в файл .cfe («Конфигурация» → «Расширения конфигурации» → «Сохранить в файл»), в рабочей базе загрузите его через тот же пункт меню. Перед загрузкой сделайте свежую копию рабочей базы и выберите время, когда пользователей мало: применение расширения с новыми реквизитами потребует реструктуризации.
Доработанную конфигурацию переносят через «Загрузить конфигурацию из файла» (.cf) или через поставку. После загрузки обязательно выполните обновление конфигурации базы данных и контрольный прогон ключевого сценария в рабочей базе. Зафиксируйте, что именно перенесено: ведите простой журнал доработок с датой, автором и описанием — это спасет при следующем обновлении.
Частые вопросы о доработке 1С
Можно ли дописать 1С без программиста?
Простые задачи — да: добавление дополнительных реквизитов и сведений через интерфейс «Администрирование» → «Дополнительные реквизиты», настройка печатных форм и вариантов отчетов не требуют кода. Изменение алгоритмов проведения, обменов и форм с обработчиками уже требует знания встроенного языка 1С и устройства конфигурации.
Что выбрать: расширение или изменение конфигурации?
По умолчанию — расширение: типовая конфигурация остается на поддержке и обновляется штатно. Прямую доработку выбирайте только для изменений, которые расширение технически не поддерживает: смена типов реквизитов, состав движений документов, глубокая переработка ролей. Сомневаетесь — сначала попробуйте реализовать задачу расширением на копии.
Слетит ли доработка при обновлении 1С?
Расширение при обновлении не удаляется, но платформа проверяет его применимость: если типовая процедура, к которой привязан обработчик, переименована или удалена, расширение откажется применяться. Поэтому после каждого обновления проверяйте статус расширений и прогоняйте ключевые сценарии. Доработки в самой конфигурации при обновлении сопоставляются вручную через режим сравнения и объединения.
Как откатить неудачную доработку?
Расширение достаточно отключить или удалить в списке расширений — типовое поведение вернется сразу. Для изменений в конфигурации потребуется загрузить сохраненный файл конфигурации или восстановить базу из копии, сделанной до доработки. Именно поэтому копия перед любыми изменениями обязательна.
Можно ли дорабатывать базу в 1С:Фреш или другом облаке?
В сервисах типа 1С:Фреш прямая доработка конфигурации недоступна — разрешены только расширения и внешние обработки, прошедшие проверку сервиса. Если задача требует глубокой доработки, рассмотрите переход на локальную версию или коробочный вариант, где конфигуратор доступен полностью.
Как понять, что задачу лучше отдать специалисту?
Признаки: доработка затрагивает проведение документов и регистры, обмены с другими системами, права доступа или закрытие периода. Ошибка в этих областях искажает учетные данные, а не просто «не работает кнопка». Если у вас нет тестовой копии и опыта работы в конфигураторе, поручите такие задачи разработчику с проверкой на копии базы.
Что важно запомнить
Дописывайте 1С через расширение, а не прямой правкой конфигурации, когда это технически возможно. Работайте только на копии базы, проверяйте результат под обычным пользователем и фиксируйте каждую доработку в журнале — тогда обновления будут проходить спокойно, а откат займет минуты.