Как заменить обработку в конфигурации 1с
В этой статье мы узнаем, что такое обработки в платформе 1С 8.3 и для каких целей они нужны. Научимся создавать обработки в качестве объектов метаданных конфигурации 1С, научимся создавать внешние обработки, создавать формы обработок, добавлять обработки в подсистемы и давать права на обработки пользователям, а также узнаем, как открыть внешнюю обработку в 1С.
В платформе 1С, помимо объектов конфигурации, которые так или иначе связаны ведением учета (например, Справочники – для хранения однотипной информации, Документы – для отображения событий), существует объект, который напрямую не связан с ведением учета, и с помощью которого можно осуществлять различные вспомогательные действия (групповая обработка справочников и документов, загрузка – выгрузка информации и т.д.). Этот объект – Обработка. Обработки могут быть как объекты какой-то конфигурации, а также внешние – в этом случае сама обработка будет храниться где-то на жестком диске, её можно будет открыть в пользовательском клиенте 1С предприятия, и выполнить нужные действия.
Создать обработку 1С
Для того, чтобы создать обработку, в конфигураторе 1С в дереве метаданных необходимо выделить ветку Обработки, вызвать контекстное меню и выполнить команду «Добавить».
После выполнения этой команды, будет создана пустая обработка, которая появится в дереве метаданных в соответствующей ветке, а также откроется окно менеджера обработки.
Обработка создана, и вы можете с ней работать: задать имя обработки, синоним и т.д.
Создать внешнюю обработку 1С
Для того, чтобы создать внешнюю обработку, нужно или выполнить команду «Новый» по пути «Главное меню» — «Файл».
Или нажать на кнопку «Новый» в меню «Стандартная».
После откроется окно «Выбор вида документа», в котором необходимо выбрать «Внешняя обработка».
Откроется окно менеджера внешней обработки, и вы можете проделать с ней все нужные операции.
После того, как внешняя обработка создана, её желательно сохранить на жестком диске (и делать это периодически во время работы с ней в конфигураторе). Для того, чтобы сохранить внешнюю обработку необходимо или нажать на кнопку «Сохранить» меню «Стандартная».
Или выполнить команду «Сохранить» по пути: «Главное меню» — «Файл».
Или просто нажать сочетание клавиш Ctrl + S.
После этих действий откроется окно, в котором можно выбрать каталог, где будет храниться эта внешняя обработка, а также ввести название файла.
После сохранения, у внешней обработки сверху будет прописан путь к ней.
Замечу, что файлы всех внешних обработок имеют расширение epf.
Добавить внешнюю обработку 1С
Иногда возникают задачи добавить внешнюю обработку в конфигурацию 1С. Чтобы это сделать, необходимо выделить ветку «Обработки» дерева метаданных конфигурации, вызвать контекстное меню и выполнить в нем команду «Вставить внешнюю обработку, отчет…».
В открывшемся окне необходимо выбрать нужную обработку.
После, обработка появится в дереве.
Сохранить обработку 1С в файл
Может возникнуть обратная задача: сохранить обработку из какой-то конфигурации в файл, т.е. сделать внешнюю обработку из простой обработки.
Делается это достаточно просто: нужно выделить обработку в дереве конфигурации, вызвать контекстное меню и выполнить команду «Сохранить как внешнюю обработку, отчет…»
Откроется окно «Сохранить как», в котором нужно выбрать месторасположение обработки, а также, если это необходимо, изменить название.
Подсистема обработки 1С
Обработку, которую мы создали в дереве метаданных можно включить в любую подсистему, тогда у нас появится возможность отобразить её в пользовательском интерфейсе. Для того, чтобы включить обработку в подсистему, необходимо зайти на закладку «Подсистемы» менеджера обработки и поставить флаг напротив нужной подсистемы.
Можно включить в подсистему другим способом. Необходимо выделить нужную обработку, вызвать контекстное меню и выполнить в этом меню команду «Дополнительно».
В правой части рабочего стола откроется окно «Дополнительно», в котором на закладке «Подсистемы» можно привязать эту обработку к нужной подсистеме, установив флаг рядом с подсистемой.
После того, как мы поставим флажки, то обработка включится в состав подсистемы.
Но, если мы попробуем её найти в пользовательском клиенте, то ни чего не найдем. Также, её не будет в командном интерфейсе подсистемы.
Причина этому – отсутствие основной формы обработки.
Основная форма обработки 1С
Для того, чтобы обработка появилась в командном интерфейсе, необходимо создать основную форму обработки.
Для этого, нужно в менеджере обработки перейти на вкладку «Формы», в которой нажать на кнопку «Добавить». После, откроется конструктор формы обработки, в котором можно ввести название новой обработки, её синоним, и самое главное установить флаг «Назначить форму основной».
Если вы нажмете на кнопку «Далее», то можете выбрать какие реквизиты обработки будут включены на форму, а если нажать на кнопку «Готово», то форма будет создана без реквизитов.
После этого, обработка появится в командном интерфейсе подсистемы.
Замечу, что основная форма обработки указана в свойстве обработки «Основная форма», если мы это свойство очистим.
То даже при наличии формы, обработка не будет отображаться в командном интерфейсе подсистемы.
Права на обработку 1С
Чтобы пользователь мог работать с обработкой, ему нужно дать права на неё. Для этого, необходимо у соответствующей роли для обработки установить права Использовать и Просмотр.
Если вы установите только право Использовать, то пользователь не сможет видеть обработку в интерфейсе. Он сможет только обращаться в ней посредством программного кода.
Если Вы внедряете обработку в какую-то типовую конфигурацию, то лучше для этого создать отдельную роль, а не изменять текущую. Тогда у вас будет меньше проблем с обновлением в будущем.
Открыть обработку 1с
Для того, чтобы открыть обработку 1С в пользовательском клиенте «1С: Предприятия», необходимо, чтобы она была добавлена в командный интерфейс нужной подсистемы, а также на обработку были даны пользователю соответствующие права. Если всё это сделано, то обработка появится в меню «Сервис» подсистемы, в которую её добавили.
И при выполнении команды с именем обработки будет открыта форма обработки.
Я немного изменил управляемую форму обработки, добавив надпись.
Управляемая форма открылась в независимом окне, если мы хотим, чтобы она открылась поверх окон, то нужно у основной формы обработки установить в свойство «Режим открытия окна» или значение «Блокировать весь интерфейс», или значение «Блокировать окно владельца».
После таких настроек, обработка будет открываться по верх окон.
Открыть внешнюю обработку 1С
Если вы хотите открыть внешнюю обработку 1С, то следует выполнить команду «Открыть», которая находится по пути «Сервис и настройки» — «Файл» (для версии платформы начиная с 8.3.15).
В окне «Открыть» необходимо найти и выбрать нужную вам обработку.
После выйдет предупреждение безопасности, если вы знаете, что это за обработка, то нажимаете кнопку «Да».
Форма внешней обработки открылась.
Замечу, что в моем случае открылась форма обработки в отдельном окне, потому что, во-первых, я создал основную форму внешней обработки, а во-вторых, установил у основной формы в свойство «Режим открытия окна» значение блокировать окно владельца.
Чтобы пользователь мог открывать внешние обработки, ему необходимо установить право «Интерактивное открытие внешних обработок».
Другие статьи по конфигурированию в 1С:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Есть в конфигураторе встроенная обработка. Она часто дорабатывается. Программа обновляется не часто. Иногда использовать встроенную, а иногда внешнюю версию, можно запутать пользователей. Всегда использовать внешнюю, мне сказали так не делать.
Вопрос, как сделать так что бы при открытии обычной обработки, открывалась внешняя обработка. Где правильно написать код, в каком месте его вызвать?
Еще можно на месте встроенной обработки написать обработку заглушку, которая всегда вызывает нужную внешнюю
(0) Конфигурация и встроенная обработка секретные?
Вставь в команду вызова встроенной обработке на внешнюю, например. Странная ситуация.
Внешнюю обработку поместить в доп. обработки. Если требуется быстрая команда для запуска (не через меню доп. обработки), то добавить эту команду в конфигурацию.
(0) ну думаю добавить "Команду" в командный интерфейс подсистемы, в модуле команды написать нечто "Найти внешнюю обработку в справочнике", если она "Используется = истина" - открывай её, иначе "Открывай встроенную" .
(0) тогда "какую открывать" будет будет регулироваться регулятором "Используется/отключена" во внешней обработке .
(7) в общей команде, нельзя открыть внешние обработки. Ка это обойти?
т.е. не сработает
ОткрытьФорму("ВнешняяОбработка.ОбработкаВН.Форма")
народ умудряется подменять встроенную в платформу обработку удаления помеченных на свою. А вы тут предлагаете удалить из конфигурации. Ужасно
(12) я предлагаю запилить расширение. или всегда использовать внешнюю.
внешняя типа медленнее, ну да, но зато не надо будет внешней заменять встроенную.
можно еще взять короче configsave до изменений, заменить в конфигурации обработку на внешнюю, выгрузить новый configsave. написать обработку замены обработки на внешнюю путем сравнения отличий в configsave до и после, вычленения изменений и поиска различий в коде внешней обработки. как-то так.
Может, кто-то сталкивался и имеет решение данного вопроса?
Есть конфигурация. В ней есть обработка Обработка1. И есть внешняя обработка Обработка1. Как через пакетный, командный или любой другой режим или способ можно заменить внутреннюю обработку Обработка1 внешней обработкой из файла Обработка1?
Т.е. если зайти в конфигуратор, на обработке Обработка1 нажать правой кнопкой, то там будет пункт меню "Заменить на внешнюю обработку". По нему можно выбрать файл и обработка заменится. Нужен такой же функционал, но автоматический, без пользователя.
Уточнение - НЕ подходит способ с выгрузкой конфигурации в файлы и заменой содержимого папки обработки содержимым выгруженной обработки.
Самый простой путь - хранилище конфигурации.
В хранилище помещаете новую версию обработки.
Потом смотрите в мануале или в конфигурации АвтоматическаяПрверкаКонфигураций, как обновить БД из хранилища.
(3)
В этой статье ответа на этот вопрос не нашёл. Там только работа с хранилищем, которая и так описана в справке. Ничего о работе с внешним файлом обработки нет.
ПараметрыРегистрации:
Значение элемента Тип элемента Ключ Значение
КлючИЗначение КлючИЗначение "Успех" Ложь
КлючИЗначение КлючИЗначение "АдресДанныхОбработки" "e1cib/tempstorage/147ca7cb-43e1-468e-affc-ea3c1ba7a7e8?seanceId=a45aca0a-0f1a-4414-8944-79a445278eab"
КлючИЗначение КлючИЗначение "ИмяФайла" "ВызовЖурналаРегистрацииИзЛюбогоОбъекта.epf"
КлючИЗначение КлючИЗначение "ЭтоОтчет" Ложь
КлючИЗначение КлючИЗначение "ОтключатьПубликацию" Ложь
КлючИЗначение КлючИЗначение "ОтключатьКонфликтующие" Ложь
КлючИЗначение КлючИЗначение "Конфликтующие"
КлючИЗначение КлючИЗначение "Успех" Ложь
КлючИЗначение КлючИЗначение "АдресДанныхОбработки" "e1cib/tempstorage/147ca7cb-43e1-468e-affc-ea3c1ba7a7e8?seanceId=a45aca0a-0f1a-4414-8944-79a445278eab"
КлючИЗначение КлючИЗначение "ИмяФайла" "ВызовЖурналаРегистрацииИзЛюбогоОбъекта.epf"
КлючИЗначение КлючИЗначение "ЭтоОтчет" Ложь
КлючИЗначение КлючИЗначение "ОтключатьПубликацию" Ложь
КлючИЗначение КлючИЗначение "ОтключатьКонфликтующие" Ложь
КлючИЗначение КлючИЗначение "Конфликтующие"
+
Как я понял, надо не заменить элемент справочника ДополнительныеОбработки, а изменить входящий в состав конфигурации отчет, на внешний файл.
Во времена программирования на CLIPPER 5 существовала возможность послать в другую программу сгенерированную последовательность скан-кодов нажатия клавиш и комбинаций нажатия клавиш. Что позволяло имитировать работу пользователя в другой программе.
Это проходило не со всеми программами, а только с теми, которые не зачищали буфер клавиатуры перед началом своей работы.
Что касается 1С : Предприятия 8, то возникают вопросы :
Зачищает ли программа буфер клавиатуры перед открытием ?
Каким образом сымитировать нажатие ПКМ на нужной строке ветки "Обработки" ?
Да и вопрос к Windows : позволяет ли ОС на компьютере пользователя передавать данные в буфер клавиатуры ?
Это не ответ на Ваш вопрос, а один из вариантов на проработку.
Если предложенное мною направление удастся проработать - дайте знать, какие ответы удалось получить. Мне тоже интересно.
(10)
Спасибо за ответ, но это даже не направление на проработать. Сейчас вполне есть всякие кликеры, тот же Кликерманн, если нужно что-то наклацать вместо пользователя - ничего сложного в этом нет. Интересует именно работа через командную строку - как средствами платформы сделать загрузку обработки в конфигурацию без пользователя с мышью?
Интересует именно работа через командную строку - как средствами платформы сделать загрузку обработки в конфигурацию без пользователя с мышью?
Все ключи командной строки документированы и многократно опубликованы (надеюсь, сами сможете найти), "секретных" нет. А если и есть - кто вам их выдаст?
Поэтому я бы прекратил эти поиски несуществующего, да и небезопасного решения - однажды в результате чьей-то ошибки вместо "правильной" обработки загрузится и запустится какая-нибудь совсем другая, выполнение которой вызовет необратимые изменения в базе - и кто будет виноват?
Нет уж, пусть программист видит то, что делает.
(14)
Спасибо за ваши бесценные бесплатные советы, я обязательно сделаю так, как вы мне сказали!
Просто я пишу вопросы не подумамшы. Думаю, а вдруг ключи командной строки не документированы и не опубликованы многократно. Дай, думаю, поищу несуществующее и небезопасное решение.
Но слава Богу, всегда на каждом форуме найдётся такой вот герой, который спасёт базы неопытных программистов от неправильных обработок и необратимых изменений! Низкий вам поклон, благодаря вам я сегодня узнал много нового - что ключи командной строки документированы и многократно опубликованы и что вы сняли с себя ответственность за необратимые изменения в нашей базе!
Тему закрываю, иду нести вашу незамутнённую мудрость другим тёмным программистам!
"Видьте, что делаете, глупцы. "
(19)
Да просто не каждый день попадаешь под такой водопад мудрости! Сижу теперь с отвалившейся челюстью, готов внемлить, может, ещё что-то настолько же мудрое выдадите? По стилистике ведь вижу - мудрец с опытом, бессонные ночи нащёлкивания на клавиатуре бесценных советов)) Можно сказать, Неуловимый Джо в сфере мудрости))
Интересно, какая ситуация в Вашей работе образовалась, которая потребовала найти такое решение ?
Как я понимаю, дело в пользователях удалённой конфигурации ?
Или в необходимости регулярного обновления ?
В Дополнительные внешние обработки уже получилось, видимо, помещать свою обработку при считывании почты средствами 1С ? Теперь 2-й этап ?
В Дополнительные внешние обработки уже получилось, видимо, помещать свою обработку при считывании почты средствами 1С ? Теперь 2-й этап ?
Теперь уже мне интересно стало, что за ситуацию в нашей работе Вы предполагаете под вот эти вопросы))
это такие сложные процессы, что они должны "наконец-то получиться"?)
На самом деле всё гораздо скучнее. Есть конфигурация, одна из её обработок дорабатывается, делается это во внешней обработке и нужно её регулярно заливать в конфигурацию. При этом в разработке ещё куча всяких других пунктов, вроде обновления, помещения в хранилище и т.п. И почти всё удалось поместить в один пакетный файл, а хочется поместить всё.
Есть конфигурация, одна из её обработок дорабатывается, делается это во внешней обработке и нужно её регулярно заливать в конфигурацию
я это и предполагал. А также предполагал, что конечная конфигурация находится очень далеко (запрет прямого доступа для разработчика) и доступа к ней практически нет. А клиент, под которого ведётся разработка, отказывается загружать обновления своими силами.
(13)Не сталкивался я раньше с подобной задачей. Поэтому интересно узнать ответ на вопрос : способ "Загрузить файлы конфигурации" может помочь решить подобную проблему ?
(17)
Этот способ мне уже известен и он довольно громоздок и неудобен. Думал, может есть какие-то способы с одной командой с участием файла *.epf.
(20)
Мы уже видели как индюк думал, он тут ещё мудрость распрыскивал, о том, что должен видеть программист и как от загрузки обработки может произойти в лучшем случае ядерный взрыв, а в худшем - коллапс Вселенной)) Тут таких индюков - в каждой ветке ходят. Недержание мудрости))
Через загрузку файлов спокойно загружается.
Нужно только небольшие корректировки файла описания обработки и конфигурации
заменяем на с сохранением ID, тут Тесты_Unit_Шаблон - имя обработки
и вставляем после блока определения модуля объекта
везде ExternalDataProcessor меняем на DataProcessor
и добавить строчку с именем обработки в описание конфигурации (файл Configuration.xml) в тег ChildObjects
Всё вроде бы выгружается хорошо, исправляем отчет под требования клиента, пробуем открыть в режиме предприятия и сталкиваемся с принеприятнейшей ошибкой: Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных()
Потратив часика полтора два на поиск устранения данной ошибки в доблестном интернете (информация сводится к двум вещам или обновить метаданные (//infostart.ru/public/372055/) или поправь права на объекты и обнови метаданные. Напомню, конфигурация на поддержки, мы ничего сломать не могли, просто пытаемся открыть отчет), результата так и не добился. Далее решил попробовать подключить его как внешний через "дополнительные отчеты и обработки", - результат тоже не тот:
Посмотрел в конфигуратор, на ошибки и понял, что почти все типовые отчеты содержат такую штуку как МодульМенеджера, в котором прописано поведение отчета и сидеть переписывать модуль менеджера отчета "под себя" что называется не было никакого желания.
Решив, уже ради спортивного интереса, добиться всё таки чтобы механизм по выгрузке отчетов заработал так как мне нужно (напомню, цель была сделать возможным доработку типового отчета с минимальными трудозатратами) прибегнул к методу которого нигде не нашел: Расширение! Если отчету нужен модель менеджера сделаем ему его :) Но столкнулся с проблемой что при заимствовании отчета в расширение СКД нельзя поменять, но вот если загрузить внешний отчет (ПКМ в конфигураторе), тогда картина становится совсем другой.
Далее переименовал имя отчета и вот беда подкралась не заметно, в расширении не открывается СКД этого отчета (потому что мы не "перетянули" в расширение все объекты, из которых строится отчет).
Однако и тут оказалось всё достаточно просто. В том отчете который мы просто выгрузили в самом начале, СКД прекрасно открывается и редактируется. Подправив СКД под требования заказчика, осталось только заменить его в нашем отчете из расширения.
Сделать это тоже очень просто достаточно просто сравнить отчет
при этом мы знаем, что нам нужно только измененное СКД:
Теперь нужно не забыть проанализировать реквизиты отчета и позаимстовать в расширение те объекты типов которых не хватает. (в моем примере это справочник.Организация и ХранилищеВариантовОтчетов), подсистема в которую необходимо выводить отчет (сделал в администрирование чтобы было проще искать). Далее копируем модуль менеджера типового отчета в свой добавленный и вуаля, всё готово.
В этой статье я расскажу, как можно корректно изменить типовую конфигурацию 1С, чтобы потом было меньше проблем с обновлениями. Список рекомендаций открытый, и вы можете дополнить его своими соображениями в комментариях.
Все примеры в этой статье сделаны на конфигурации «Управление нашей фирмой», у которой я включил возможность изменения всех объектов, оставив при этом её на поддержке. Определим некоторые условности: типовым я буду называть объект поставщика, который не был изменен. После того, как этот объект поменяли, он уже стал нетиповым.
Порядок объектов 1C
Первое, я не рекомендую изменять порядок объектов.
К пример, был такой порядок:
В этой конфигурации я ни чего в объектах не менял, а просто поменял местами два справочника, и оба этих справочника появятся в окне сравнения во время обновления, если установить фильтр «Показывать отличия основной конфигурации от старой конфигурации поставщика».
Этот фильтр, по сути, показывает изменения, которые мы внесли в конфигурацию, и сдвинутые таким образом объекты будут нам мешать работать с остальными объектами.
Снятие с поддержки и удаление
Желательно, не снимать с поддержки объекты поставщика, и тем более удалять их. Потому что, если мы снимем с поддержки какой-то объект, например этот справочник.
То во время обновления, этот объект по умолчанию не будет обновлен, т.е. он не примет все те изменения, которые присутствуют в новом релизе поставщика. И в окне «Сравнить, объединить», которое появляется во время обновлений баз, у которых поддержка с возможностью изменения
Новые методы в общем модуле поставщика
Следует воздержаться от изменения общих модулей поставщика. Если появилась необходимость в новой процедуре или функции, то лучше создать собственный общий модуль и написать в нём эту процедуру.
Если мы создадим в общем модуле поставщика свою процедуру или функцию.
То в случае обновления, когда поставщиком будет изменен этот общий модуль, нам каждый раз придется выполнять работы по сравнению, чтобы и обновления поставщика попали в общий модуль, и наши изменения сохранились.
Если есть необходимость создать метод в каком-то общем модуле, то лучше создать «клон» этого модуля, и в нем написать нужную процедуру процедуру или функцию.
Тогда во время обновления, не придётся выполнять работы по совмещению изменений поставщика и ваших изменений в общем модуле.
Переименование объектов, процедур и функции 1С
Не рекомендуется переименовывать объекты, процедуры и функции поставщика. Потому что, во время обновления придется контролировать, чтобы эти измененные методы не были затерты методами поставщика.
Например, переименуем в общем модуле функцию, а также вызов этой функции в другом методе.
Во время выполнения обновления конфигурации, этот модуль, где мы переименовали метод, появится в окне «Обновление Основная конфигурация – Новая конфигурация поставщика» причем с установленным фильтром «Показывать только дважды измененные свойств».
Если мы посмотрим, что изменилось.
То увидим, что платформа пытается удалить метод, у которого мы поменяли название, а в место него записать типовой метод, и также изменить код в процедурах поставщика, где мы изменили название метода.
С одной стороны, ни чего страшного: все вернется, как было. Но, тут возможны нюансы: первое, если мы что-то доработали в нашем методе с измененным названием, то эти доработки пропадут; второе, если мы используем метод с измененным названием где-то, например, в нашем общем модуле то его вызов таким и останется, как мы написали, что приведет к ошибкам.
Доработка методов модулей поставщика
Если появилась необходимость выполнить доработки какого-то типового метода, то, по возможности, все доработки выносите в отдельную процедуру. Эту процедуру лучше написать в добавленном вами общем модуле.
Например, в общем модуле ОбщегоНазначения нужно доработать процедуру «МестоположениеКомпонентыКорректно».
Вместо того, чтобы написать весь код в этой процедуре, будет оптимально, если создадим в нашем общем модуле экспортную процедуру, в которой напишем этот код.
И её уже вызовем в процедуре общего модуля поставщика.
Копирование методов поставщика с последующей доработкой
В некоторых случаях лучше создать новую процедуру или функцию, которая будет копией процедуры или функции поставщика. Если изначальная процедура поставщика располагалась в общем модуле, то можно создать свой общий модуль и в нем написать копию процедуры.
Например, в этом случае, вместо процедуры «МакетСуществует» модуля поставщика.
Можно создать копию этой процедуры в своем общем модуле
Эту копию изменить как надо, а потом поменять вызов типовой процедуры.
Этим способом нужно пользоваться очень аккуратно, потому что есть опасность не заметить приход важных обновлений в оригинал процедуры, которую скопировали.
Изменение подсистем 1С: создать подчиненную
Если вы создали какой-то объект, то его желательно нужно добавить в подсистему. Рекомендую воздержаться от изменения типовой подсистемы, и создать собственную подсистему, в состав которой добавлять новые объекты.
Иногда такое не всегда приемлемо, потому что новый объект нужно включить в видимость какой-то подсистемы поставщика. Если добавить объект в саму подсистему поставщика.
То при обновлении, в том случае, когда подсистема поставщика была изменена, придется совмещать состав этой подсистемы. Чтобы и наши изменения сохранились, и новые изменения поставщика пришли.
Чтобы каждый раз при обновлении не тратить время на совмещение составом, лучше создать свою подсистему, которая будет подчинена подсистеме поставщика.
И в эту подсистему включить ваш новый объект.
Тогда вам не придется при обновлении каждый раз работать с составом типовой подсистемы.
Рекомендации по изменению ролей в 1С
Так же, как и в вопросе с подсистемами, я рекомендую воздержаться от изменения типовых ролей, в случае добавления вами каких-то объектов и необходимостью установки прав доступа на этот объект.
Если вы создали новый объект, и стоит необходимость дать права доступа на этот объект, то изменив существующую роль, добавив в неё нужные права на этот объект.
Вам при обновлении придется каждый раз сравнивать состав ролей, если эта роль была изменена поставщиком в обновлении.
Поэтому, если это возможно, то лучше создать новую роль и добавить в неё новый объект, и тогда не придётся сравнивать составы ролей при обновлении.
Изменение типовых форм
Рекомендуется, ограничить изменение внешнего вида формы, для этого лучше все новые элементы можно создать программно, особенно если их не много.
Если изменения значительны, то стоит создать новую форму копию типовой с префиксом, и добавить её в основные формы объекта. Но этот вариант спорный, потому что если вы измените типовую форму то при обновлении вы увидите, что форма поменялась, а в случае своей формы, вы это не узнаете, и можете пропустить критичное изменение. Или в случае, когда создана своя форма, то при обновлении нужно будет каждый раз анализировать изменения типовой формы.
Рекомендации по написанию своего кода
Желательно весь код, который вы вносите в объекты поставщика (в модуль объекта, в модуль менеджера объекта, в модуль формы и т.д.) начинать и заканчивать префиксом, по которому будет легко найти этот код. К примеру, название организации, собственно ФИО и т.д., а также писать дату, причину изменения, описание изменения.
На этом я закончу эту статью. Список рекомендаций открытый. Если у вас есть какие-то дополнения к полученной информации, то обязательно пишите о них в комментариях.
Подробно и наглядно рекомендации по изменению типовых конфигураций 1С в этом видео:
Статьи по теме обновлений 1С:
Если по мимо задач по администрированию, перед вами стоят задачи по разработке в 1С, то рекомендую вам свою книгу «Программировать в 1С за 11 шагов», в которой подробно и основательно шаг за шагом даются основные знания по разработке в 1С.
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Читайте также: