К статье
Практический материал

Разработка и Конфигурация · 12 мин

Как дописать программу 1С: практическое руководство по доработке

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

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

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

Любая доработка начинается с резервной копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD или выгрузить базу через конфигуратор в файл .dt. Для клиент-серверной базы копию делает администратор средствами СУБД. Без проверенной копии, из которой реально восстановились хотя бы раз на тестовом стенде, изменять рабочую базу нельзя.

Определите, что именно нужно дописать

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

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

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

Нужен только новый реквизит или полеПростая доработка

Решается расширением без изменения кода

Меняется алгоритм расчета или проведенияСредняя сложность

Потребуется переопределение процедур и тестирование на реальных данных

Нужен обмен с внешней системойВысокая сложность

Проверьте наличие типовых планов обмена и HTTP-сервисов

Задача решается настройкойДоработка не нужна

Проверьте функциональные опции и права пользователей

Выберите способ: расширение или изменение конфигурации

Расширение конфигурации — механизм платформы, который позволяет добавлять объекты, реквизиты, формы и обработчики поверх типовой конфигурации, не снимая её с поддержки. Это основной рекомендуемый путь: база продолжает обновляться штатно, а ваши доработки применяются отдельным слоем. Создается расширение в конфигураторе: «Конфигурация» → «Расширения конфигурации» → «Создать».

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

Сравнение способов доработки

Расширение конфигурации

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

Доработка конфигурации

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

Внешние обработки и отчеты

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

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

Подготовьте среду и сделайте копию

Для разработки нужен конфигуратор той же версии платформы, на которой работает база. Узнать версию можно в режиме «Предприятие»: «Сервис» → «О программе». Разработку ведите на копии базы, развернутой локально или на тестовом сервере, — никогда не в рабочей базе, где в этот момент работают пользователи.

Порядок подготовки копии файловой базы: закройте сеансы пользователей, в конфигураторе выполните «Администрирование» → «Выгрузить информационную базу», затем создайте пустую базу и загрузите в неё выгрузку через «Загрузить информационную базу». Проверьте, что копия открывается в режиме «Предприятие» и содержит актуальные данные.

Выполните доработку в конфигураторе

Откройте копию базы в конфигураторе. Если работаете через расширение — создайте его и добавляйте объекты туда. Если дорабатываете конфигурацию — сначала включите возможность изменения: «Конфигурация» → «Поддержка» → «Настройка поддержки» → «Включить возможность изменения».

Добавление реквизита

Найдите нужный объект в дереве конфигурации (например, «Документы» → «РеализацияТоваровУслуг»), откройте ветку «Реквизиты» и добавьте новый элемент с понятным именем и типом. Затем откройте форму документа и перетащите реквизит на форму. Проверьте, что реквизит сохраняется и отображается при повторном открытии документа.

Изменение логики через обработчики

В расширении типовую процедуру не редактируют напрямую — её заимствуют и оборачивают аннотациями &После("ИмяПроцедуры"), &Перед("ИмяПроцедуры") или &Вместо("ИмяПроцедуры"). Вариант «Вместо» полностью подменяет типовой код и ломается при изменении типовой процедуры в новом релизе, поэтому используйте его только когда «Перед» и «После» не подходят.

bsl
&После("ПриЗаписи")
Процедура Расш1_ПриЗаписи(Отказ)
	Если Не ЗначениеЗаполнено(Комментарий) Тогда
		Комментарий = "Проверено расширением";
	КонецЕсли;
КонецПроцедуры

После правок выполните проверку конфигурации: «Конфигурация» → «Проверка конфигурации», отметьте пункты проверки модулей и расширения. Затем обновите конфигурацию базы данных клавишей F7. Если платформа сообщает об ошибках реструктуризации — читайте их внимательно, а не подтверждайте вслепую.

Порядок доработки через расширение
  1. 1
    Сделайте выгрузку базы и разверните копию
  2. 2
    В конфигураторе копии создайте расширение конфигурации
  3. 3
    Добавьте нужные объекты, реквизиты или заимствованные процедуры
  4. 4
    Выполните проверку конфигурации и обновите базу данных (F7)
  5. 5
    Протестируйте сценарий в режиме Предприятие на копии
  6. 6
    Перенесите расширение в рабочую базу и проверьте на контрольном примере

Протестируйте результат до переноса в рабочую базу

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

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

Контрольные точки

Как проверить результат

Новый реквизит в документе
Норма

Сохраняется, виден после переоткрытия, попадает в печатную форму

Тревожный признак

Значение пропадает после записи или не выводится на печать

Измененная логика проведения
Норма

Движения по регистрам соответствуют ожидаемым, старые документы перепроводятся без ошибок

Тревожный признак

Проведение падает с ошибкой или формирует лишние движения

Работа под обычным пользователем
Норма

Все функции доступны с типовыми правами роли

Тревожный признак

Ошибки доступа или пустые данные у пользователей без полных прав

Обновление типовой конфигурации
Норма

Расширение применяется без конфликтов после тестового обновления

Тревожный признак

Расширение отключается с диагностикой несовместимости

Перенесите доработку в рабочую базу

Расширение переносится файлом: в конфигураторе копии сохраните расширение в файл .cfe («Конфигурация» → «Расширения конфигурации» → «Сохранить в файл»), в рабочей базе загрузите его через тот же пункт меню. Перед загрузкой сделайте свежую копию рабочей базы и выберите время, когда пользователей мало: применение расширения с новыми реквизитами потребует реструктуризации.

Доработанную конфигурацию переносят через «Загрузить конфигурацию из файла» (.cf) или через поставку. После загрузки обязательно выполните обновление конфигурации базы данных и контрольный прогон ключевого сценария в рабочей базе. Зафиксируйте, что именно перенесено: ведите простой журнал доработок с датой, автором и описанием — это спасет при следующем обновлении.

Типичные ошибки при доработке 1С
01
Доработка прямо в рабочей базе без копии — при ошибке восстанавливать нечего, простой компании измеряется часами
02
Использование &Вместо там, где достаточно &После — расширение ломается при первом же обновлении типовой конфигурации
03
Снятие всей конфигурации с поддержки ради одного реквизита — дальнейшие обновления становятся ручными и дорогими
04
Тестирование только под полными правами — у рядовых пользователей доработка не работает
05
Имена новых объектов без префикса — при обновлении возможны конфликты с типовыми объектами, добавленными вендором

Частые вопросы о доработке 1С

Можно ли дописать 1С без программиста?

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

Что выбрать: расширение или изменение конфигурации?

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

Слетит ли доработка при обновлении 1С?

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

Как откатить неудачную доработку?

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

Можно ли дорабатывать базу в 1С:Фреш или другом облаке?

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

Как понять, что задачу лучше отдать специалисту?

Признаки: доработка затрагивает проведение документов и регистры, обмены с другими системами, права доступа или закрытие периода. Ошибка в этих областях искажает учетные данные, а не просто «не работает кнопка». Если у вас нет тестовой копии и опыта работы в конфигураторе, поручите такие задачи разработчику с проверкой на копии базы.

Итог

Что важно запомнить

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