Как сохранить расширение 1с в файл
Изучив опыт использования предыдущих версий программы, и учтя тот факт, что каким бы универсальным и всеобъемлющим не было конкретное решение, в конечном итоге в 90% случаев требуется его доработка под конечного пользователя. Разработчики 8 версии программы 1С реализовали несколько принципиально новых решений для минимизации необходимости изменения стандартных механизмов конфигураций:
- Буквально с первых версий программы у элементов многих справочников появилась возможность создания дополнительных свойств и категорий с использованием соответствующего плана видов характеристики и регистра сведений;
- Дополнительные печатные формы и формы заполнения табличных частей, равно как и дополнительные отчеты и обработки теперь могут вызываться из соответствующего справочника;
- Обработка стандартных процедур объектов осуществляется не внесением изменений в модуль, а путем подписок на события;
- И, наконец, с версии платформы 8.3.6 появились в 1С расширения конфигурации.
Что такое расширения конфигурации 1С, как с ними работать, ограничения в использовании – вот тот спектр вопросов, которые мы попытаемся раскрыть в нашей статье.
Немного теории
До появления механизма расширений процесс обновления типовых конфигураций в значительной степени зависел от того, находится ли конфигурация на поддержке или в нее внесены изменения. В последнем случае, разработчику приходилось:
- Сравнивать типовую и имеющуюся структуру метаданных;
- В случае существенного отличия типовых элементов следить за корректным обновлением;
- Вносить соответствующие изменения после обновления.
Все это сильно усложняло процесс обновления, увеличивая время отработки и, зачастую, лишало организацию возможности обновления типовых модулей дорогостоящего программного обеспечения.
Механизм расширений позволяет без снятия типовой конфигурации с поддержки дорабатывать многие ее элементы. Фактически, разработчик, на основе типового решения создает свою собственную конфигурацию, которая является оболочкой для типового решения. В этом случае процесс обновления типовой части происходит автоматически, при запуске же конечным пользователем платформа объединяет оба решения для пользователя.
Ситуации, в которых можно использовать расширения
Как и у любого другого инструмента, у механизма расширений существует ряд характеристик, и ограничений которые определяют область их использования:
- Расширения могут работать с управляемыми формами;
- Механизм поддерживает изменение и добавление существующих подсистем;
- До выхода платформы 8.3.8 в расширении можно было только изменять существующие роли, после обновления они позволили добавлять новые, ограничивая доступ даже к объектам основной базы;
- Существующий механизм позволяет по собственному желанию изменять командный интерфейс подсистем и основного раздела конфигурации;
- Также этот инструментарий позволяет добавлять обработки и отчеты без внесения изменений в структуру базы;
- В версии платформы 8.3.9.718 значительно переработан механизм диагностирования совместимости расширения и основной конфигурации.
Из вышесказанного становится понятно, что:
- При работе с обычными формами функционал расширений значительно ограничен;
- Хотя и облегчился процесс обновления основной конфигурации, однако возможность использования конкретного расширения (в том числе и в качестве тиражных решений) может быть серьезно ограничена как изменениями исходной структуры, так и несколькими параллельно используемыми расширениями;
- Использовать этот механизм целесообразно в тех случаях, когда есть необходимость дифференциации внешнего вида и функционала, используемыми различными пользователями, либо когда собственными силами производится доработка типовой конфигурации, находящейся на поддержке.
Перейдем к практике. В качестве исходной базы мы будем использовать конфигурацию «Зарплата и управление персоналом» версии 3.1.3.223, работы будут осуществляться на платформе 8.3.10.2561, режим работы – файловый.
Создание расширения
В конфигураторе войдем в меню Конфигурация->Расширения конфигурации, откроется форма (Рис.1).
Именно здесь и можно создать новое расширение. Нажмем кнопку «Добавить». Вот и окно нового расширения (Рис.2)
Рассмотрим его элементы:
- Имя – в отличие от других элементов конфигурации оно не создается по стандартам системы, т.е. может начинаться с цифры или символа, может содержать пробел;
- Синоним – так же, как и для других элементов метаданных содержит выражение-представление объекта;
- Префикс – позволяет идентифицировать обработчики событий в модуле формы, так как модуль формы основной конфигурации и модуль формы расширения объединяются при работе платформы в общем контексте (по умолчанию сначала отрабатывается расширение, то есть обработчики с префиксом, потом основные обработчики);
- Назначение.
Список поля «Назначение» состоит из трех значений, опишем их в порядке исполнения:
- Исправление – расширения этого назначения создаются для корректировки незначительных неточностей и ошибок в заимствованных объектах;
- Адаптация – значение по умолчанию, расширения этого типа предназначены для подстройки типовых объектов под требования конкретного пользователя, (если расширение создавалось в версии программы ниже 8.3.9, после обновления платформы оно будет иметь именно это назначение);
- Дополнение – вносят совершенно новый функционал в типовое решение.
Запуск расширения
Двойной щелчок на имени расширения в окне из Рис.1, открывает окно расширения (Рис.3)
Как видим, оно представляет собой дерево, подобное дереву основной конфигурации. И здесь возникает один вопрос, в каких случаях следует заимствовать объект?
Необходимо заимствовать только те объекты, (справочники, документы, реквизиты и т.д.) которые будут использоваться в расширении формы, или в коде его модуля и без заимствования которых может появиться ошибка в работе расширения.
То есть, если для нашей разработки потребуется реквизит «ИНН» справочника «Физические лица», если он будет использован в модуле формы, мы должны его заимствовать из основной базы. В этом случае каждый раз при запуске расширения будет производиться проверка на наличие этого реквизита в справочнике основной конфигурации и на соответствие типа данных в исходной базе и в расширении.
Если после обновления или в ходе разработки нового функционала возникнет несогласованность между типами данных расширения и конфигурации или еще какие-то ошибки система проинформирует об этом пользователя (Рис.4)
Окно в правом нижнем углу указывает на нестандартную ситуации при подключении расширения, двойной клик на нем открывает подробную информацию. В данном случае мы просто поменяли тип значения у реквизита ИНН со значения «Строка» на значение «Булево» у заимствованного объекта, однако гораздо чаще бывает обратная ситуация – когда обновление типового продукта приводит к изменению или ликвидации реквизита основной базы.
Отработав и протестировав расширение на копии базы, его можно выгрузить в отдельный файл, для этого в окне (Рис.5) необходимо нажать кнопку «Конфигурация», выбрать пункт «Сохранить в файл». В отличие от обычных файлов конфигурации, имеющих расширение cf, файл дополнения к конфигурации будет иметь маску *.cfe.
Как видно из вышеприведенного рисунка загрузить новый функционал можно из того же окна, а можно из основного окна программы.
Для подключения расширения в режиме 1С.Предприятие у пользователя должен быть включен режим «Все функции» и вход в программу должен быть осуществлен с правами Администратора.
Путь для подключения доработки выглядит следующим образом: Все функции->Стандартные->Управление расширениями конфигурации. Открывающееся окно представлено на Рис.6
Нажатие на кнопку «Добавить», открывает диалоговое окно выбора файла, в котором необходимо выбрать нашу выгрузку. Если у обработки установлена галочка (Рис.7) и расширение содержит ошибку, подключение функционала будет отменено, и программа сообщит о возникновении исключительной ситуации.
Чтобы после успешного добавления наш функционал заработал, программу надо перезапустить.
Заимствование объектов и порядок срабатывания модулей
Для того, чтобы проследить последовательность выполнения обработчиков, мы включим возможность изменения нашей конфигурации и добавим в нее новую обработку, функционал которой будет заключаться только в одном – она будет сообщать, что её запустили из основной конфигурации, код на Рис.8.
Добавим эту обработку в расширение.
- Правой кнопкой мышки активизируем контекстное меню формы обработки (Рис.9);
Мы имеем три типа вызова для имеющейся процедуры;
- Вызывать перед – исполнение кода расширения будет запущено прежде, чем отработает основная конфигурация;
- Вызывать после – доработанная процедура пойдет вторым номером;
- Вызывать вместо – процедура из основной конфигурации вообще не будет выполнена.
Оставим тип вызова в положении «Вызывать после» и добавим процедуру «Расш1_СообщитьПосле(Команда)» (Рис.11).
Начиная с версии 8.3.9.1818, в функционал программы был включен механизм изменения типовых модулей, а так же добавления собственных модулей. И здесь перед разработчиками стояла вполне конкретная задача: как определить, в каком порядке должны выполняться заимствованные процедуры и функции не только по отношению к основной конфигурации, но и по отношению к уже подключенным в конфигурации расширениям.
Механизм аннотаций
Представим ситуацию, когда к одной конфигурации подключено несколько расширений, то есть окно их выбора в конфигураторе выглядит как на (Рис.13)
При добавлении каждого нового расширения система самостоятельно выстраивает порядок их исполнения.
Настройка порядка выполнения дополнительных модулей происходит исходя не только из времени добавления модуля (позже добавлено, позже исполняется), но и исходя из назначения доработки («Исполнение» всегда будет идти прежде «Адаптации»).
Кроме этого последовательность выполнения процедур добавляемых модулей можно регулировать с помощью аннотаций:
Как видно, их набор схож с тем, что был продемонстрирован в предыдущем разделе, сходен и функционал.
Так как заимствованный модуль и модуль-донор находятся в одном пространстве имен, никаких дополнительных определений для типовых переменных и методов в этом случае не нужно.
Несколько иначе, нежели с процедурами обстоит дело с функциями. Дело в том что, выполнение типовой процедуры может быть как бы окантовано кодом расширения, то есть можно вставить какие-то действия до кода процедуры, некоторые алгоритмы после, а вот для функций это не прокатит. Если основная функция будет выполняться после кода расширения, возвратное значение замещающей функции не будет получено, если же перед измененным алгоритмом, то не будет получено значение основной функции и аннотация &После отработает как &Вместо.
Для ликвидации такой «несправедливости» был создан метод ПродолжитьВызов().
Вообще говоря, использовать аннотацию «Вместо» немного не корректно, хотя порой и необходимо. Используя её, мы в значительной мере ограничиваем тот функционал, который может быть существенно изменен и доработан в типовых конфигурациях.
Внесение изменений в модуль объекта
Механизм подписок на события очень сильно облегчил работу разработчикам, но было одно серьезное НО.
Но для его использования, зачастую приходилось создавать собственный общий модуль, в котором бы хранились процедуры обработки тех или иных действий с данными. В настоящее время использование расширений позволило в значительной мере пересмотреть данный функционал.
Допустим, нам в процессе работы понадобилось добавить какую-либо обработку для типового документа «Прием на работу» при его записи. Раньше мы бы зашли в подписки и действовали оттуда, сейчас мы можем добавить этот документ к расширению:
- Выберем в конфигураторе «ПриемНаРаботу» и из его контекстного меню добавим его в наше расширение (кстати этот механизм имеет комбинацию горячих клавиш Альт+Шифт+Ф2);
- После выбора соответствующего дополнения мы получим картинку, как на Рис.14;
- Нас будет интересовать выделенный желтым цветом элемент «Модуль объекта», откроем его, активировав предварительно соответствующей галочкой (Рис.15);
- Мы получим чистый лист программного модуля, обратим внимание на верхнюю панель, а точнее, на элемент, представленный на Рис.16, в ниспадающем списке здесь представлены события, которые можно обработать для данного объекта;
В некоторых случаях из-за установленной галочки «Безопасный режим», подключение расширения происходит с ошибкой.
Небольшой анонс
В ближайшее время фирма 1С планирует выпуск платформы 8.3.11, в которой они анонсировали возможность добавления собственных:
- Документов;
- Справочников;
- Планов обмена;
- Регистров сведений.
Так же должна быть реализована возможность добавления реквизитов и табличных частей. При этом разработчики учли возможность изменения типовых решений, которое может повлечь за собой сбой в работе расширения.
Данные, внесенные в расширение никуда не пропадут, а до того момента, как не будет решена проблема совместимости, изменяемый дополнением справочник основной конфигурации будет недоступен для записи.
Несколько раз за свой опыт работы с расширениями сталкивался с задачей, когда расширение в конкретную конфигурацию встроить без танцев с бубном не получается. Причины могут быть разные, например:
- формы конфигурации разработаны в обычном режиме
- режим совместимости конфигурации не поддерживает расширения в нужной мере или вовсе
- есть ограничения по используемой версии платформы
До этого момента несколько раз приходилось руками переносить все объекты из расширения в основную конфигурацию, т.к. сравнить-объединить с файлом расширения нету возможности на уровне конфигуратора (а если есть - поправьте в комментариях :), гугление результатов не принесло. При этом велик риск потерять типы реквизитов, если переносить объекты не в порядке их создания в расширении.
В поисках инструмента по сравнению и объединению с расширением на форуме прочитал совет: сравнить содержимое файлов самой конфигурации и файлов расширения. Что собственно и сделал при необходимости в очередной раз пройти тернистый путь объединения.
Аналогично выгрузил пустую конфигурацию для дальнейшего анализа.
Старый добрый total commander быстро показал различия между пустой конфигурацией и расширением. При наличии жесткой 1С-зависимости можно эту операцию выполнить прямо в конфигураторе через Сравнить файлы.
После удаления не забываем сохранить файл.
После (или такими) нехитрыми действиями получаем объекты расширения в основной конфигурации.
Специальные предложения
user790708; Dorosh; TeMochkiN; Mails79; echo77; NoRazum; gubanoff; pavelpribytkin96; pm74; + 9 – Ответить
Интересное решение, спасибо! Хотелось бы конечно более подробного примера с тем, что делать дальше и какие подводные камни могут возникнуть, если вдруг Вы встречались с ними.
Если расширение полностью независимо от основной конфигурации, то судя по всему проблем не будет. Но вот сейчас попробовал объединить с cf-файлом, полученным описанным способом, в котором были заимствованные из основной конфигурации формы. Добавлены элементы не программно - через дизайнер форм. При сравнении система предложила загрузить такое свойство как "Сохраняемая форма" )) Объединение форм с приоритетом основной конфигурации всё равно приводит к замещению формы и все элементы из неё пропадают. Видимо какие-то внутренние свойства этому способствуют - пока подробнее не разбирал.
Для объединения модулей и реквизитов решение очевидно подходит.
Ещё один аргумент в пользу программного изменения форм даже в расширениях конфигурации ))
Я, может, пропустил в тексте, но этот подход работает только для новых объектов в расширении?
Как написал Владимир выше, проблемы с расширенными формами. А что будет, если в расширении добавили реквизит к объекту основной конфы? Или изменили существующий реквизит? Ну и много подобных примеров.
(7) для новых объектов работает точно.
Постараюсь описать добавление, изменение реквизитов в следующей редакции статьи)
(9) Спасибо! Там кстати не производится замена на пустые строки следующего текста
Интересно, на OneSript написали потому что действительно в каком-то случае часто эту операцию приходится выполнять?
Интересно, на OneSript написали потому что действительно в каком-то случае часто эту операцию приходится выполнять?
Отчего же не сделал внешнюю обработку для автоматизации процесса?
ИР например умеет делать обратную операцию автоматически - преобразует свою конфигурацию в расширение.
(13) спасибо за коммент насчёт ИР - не знал, добавлю позже в содержание.
Обработку не писал, ибо не настолько часто делаю эту операцию. А как выяснилось из (9), инструмент уже написан :)
Выпуск из чистой подсистемы
Откройте на платформе 8.3.10.2375+ в любой другой базе с подсистемой через интерфейсную панель общую форму "Выпуск варианта Расширение"
Укажите в "Каталоге выпуска", куда помещать выпускаемый файл
Закройте конфигуратор этой базы
Нажмите Выполнить
Идея хорошая. Статья не очень (хотелось бы подробнее). Сделайте лучше обработку по автоматизации данного процесса конвертации (коли компания 1С сама не в силах предложить такой сервис в платформе, ну или внешней типовой обработкой хотя бы).
Я, вот , всегда для расширений делаю и cf файлы для поставки с вместе с ними. Но приходится делать это вручную - перенося метаданные. Была бы автоматизация - было бы куда проще
(17) спасибо за отзыв. Расскажите, что именно хотелось бы рассмотреть подробнее?
И, в свете существования инструмента на 1script, действительно ли нужна обработка?
Обработка предназначена для выгрузки конфигурации или расширений в файл (*.cf / *.cfe). Работает на толстом и тонком клиентах, через браузер. Для работы необходимо иметь право открытия внешних обработок или доступ к справочнику внешних отчетов и обработок. Обработку тестировал только под Windows. Работает с клиент-серверной и файловой архитектурой.
Описание обработки: Выгрузка CF
"Путь к файлу" - указываем путь на клиенте, куда будет сохранен файл конфигурации (расширения).
Поля "Тип платформы", "Сервер", "База" - заполняются автоматически при открытии.
Поле "Расширение" - указывается расширение конфигурации (если есть). Если значение заполнено, тогда выгружается расширение (*.cfe), иначе выгружается конфигурация (*.cf)
В полях "Пользователь" и "Пароль" - указываются данные пользователя от имени которого будет выполнятся выгрузка
В случае "нехватки" прав можно попробовать запустить приложение от имени другого пользователя. Механизм позаимствован из типовых конфигураций.
Колонка таблицы "Защита от опасных действий" - снимает/устанавливает данный параметр у пользователя.
При использовании обработки в браузере, дополнительно становится доступна команда "Подключить расширение работы с файлами"
Тест выполнялся на платформе (версия = 8.3.18).
P.S. При выгрузке через WEB файловой базы в некоторых случаях может быть ошибка.
Выгрузка конфигурации или расширения конфигурации в файл (*.cf или *.cfe). В том числе выгрузка через WEB
Специальные предложения
(0) Не проще ли использовать "УстановитьПривилегированныйРежим()" вместо второй закладки или другого пользователя?
З.Ы. Ограничив при открытии обработки правом для одной роли.
Привилегированный режим установлен, но не всегда спасает
При выгрузке ошибка
: Ошибка при вызове конструктора (ДвоичныеДанные): Файл не обнаружен '/tmp/v8_0Y4Dba_53.cf'
И в браузере, и в тонком клиенте, база на веб-сервере.
(7) Когда делал обработку не было возможности проверить на линуксе (да и сейчас нет).
Может быть и можно обойти.
Судя по описанию ошибки, нет доступа к временному файлу, "ПолучитьИмяВременногоФайла()" работает как то по другому в линксе. В общем надо в коде смотреть
(9) Нужно подключаться и в отладке смотреть, так сложно сказать решение.
Или как вариант попробуйте УстановитьПривилигированныйРежим(Истина) - если там не установлено
(10) командная строка отрабатывает как-то быстро за долю секунды, и сразу идет попытка чтения файла cf, а его нет, вот и ошибка.
(11) Посмотри, свободен ли конфигуратор (в активных пользователях), если нет, тогда выбрось пользователя. Нужен конфигуратор для выгрузки
Просмотры 2366
Загрузки 17
Рейтинг 9
Создание 20.09.21 18:30
Обновление 20.09.21 18:30
№ Публикации 1185148
Конфигурация Конфигурации 1cv8
Операционная система Windows
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Да
См. также
Оптимизация размера изображений из присоединенных файлов УТ 11.4 Промо
5 стартмани
10.07.2020 11369 15 Neti 4
Обработка-инструмент для анализа и редактирования документа и справочника для управляемых форм
Сервисная внешняя обработка для использования в качестве инструмента разработчика для работы с элементом справочника, документом Ищет по номеру, коду, наименованию с фильтрами, Выполняет редактирование объекта, анализ ссылок, журнала регистрации, профилей и ролей, работа с УИД.
1 стартмани
25.03.2022 1062 9 767256 0
Сохранение и восстановление сессии сеанса 1С
1 стартмани
13.12.2021 1871 3 Obertone 0
Быстрая выборка и отображение пользователей с их уникальными идентификаторами (gUID)
Иногда бывает нужно быстро получить список всех пользователей ИБ с их уникальными идентификаторами и/или с ИдентификаторПользователяИБ, особенно при разработке / настройке интеграции с внешними системами.
1 стартмани
06.12.2021 1554 1 resonance 1
Запуск 1С под любым пользователем (без необходимости указания пароля) Промо
Предназначается для запуска сеанса другого пользователя из своего сеанса 1С (если пароль вам неизвестен).
1 стартмани
02.07.2019 32422 344 sapervodichka 0
Универсальная выгрузка, загрузка и резервное копирование настроек программы
Универсальная обработка позволяет выгрузить настройки практически любой современной конфигурации на базе БСП в файл, а при загрузке из файла сравнить с текущими значениями в информационной базе.
1 стартмани
23.08.2021 3597 20 Nicholas 9
Доп. панель Alt+Z
Панель, вызываемая для объекта комбинацией клавиш Alt+Z (для документа, справочника, плана вида характеристик, плана счетов и т.д.). Возможности: Редактор всех реквизитов, таблиц и движений, Анализ прав к объекту, Поиск ссылок на объект с фильтрами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Подключается как Расширение.
2 стартмани
24.06.2021 11022 126 sapervodichka 63
Система проверки данных (spd) (расширение)
1 стартмани
20.04.2021 3591 15 tsatsur 10
DroidRAC2 - консоль администрирования кластера серверов 1С:Предприятие 8.3 под Android Промо
DroidRAC2 - клиент для RAS-сервиса кластера серверов платформы 1С:Предприятие 8.3 под Android.
1 стартмани
24.02.2017 29803 13 user700211_a.straltsou 20
Пример получения файла с сервера
Иногда, но появляется необходимость получить быстрый способ переноса содержимого файла с удаленного сервера к себе на локальный компьютер, для его последующего открытия и просмотра. В связи с чем предлагаю вашему вниманию обработку для рассмотрения и возможной реализации.
1 стартмани
08.02.2021 2046 1 creatermc 2
Управление Избранным
Групповая обработка Избранного всех пользователей информационной базы.
1 стартмани
24.06.2020 4914 35 Yashazz 8
Автоматическая корректировка расписаний регламентных заданий
Обработка меняет расписание регламентных заданий - предназначена в основном для условий большого количества баз. 1) есть возможность замедлить все задания - например, для не особо важных баз 2) задания "разносятся" по времени - чтобы когда у вас на сервере 20 баз, они не начинались одновременно
1 стартмани
23.01.2020 2177 2 ilya2184 0
Многопоточная обработка данных Промо
Конфигурация "Универсальные механизмы: пакеты данных". Набор инструментов для быстрой организации отказоустойчивой многопоточной обработки данных.
1 стартмани
23.11.2018 34231 125 _ASZ_ 17
Конфигурация для администраторов "Центр управления базами" для 8.3 УФ
Конфигурация предназначена для централизованного управления информационными базами предприятия. Разработана на БСП версии 2.4.4.76. В работе использует COM-соединение.
3 стартмани
09.10.2019 12979 44 WhiteOwl 17
Сохранение данных в файл, загрузка данных из файла, групповая обработка данных, перенос данных между идентичными конфигурациями
Обработка администрирования данных конфигурации. Подходит для любой конфигурации, реализованной на управляемых формах. Сохранение данных в файл, загрузка данных из файла, групповая обработка данных.
1 стартмани
30.09.2019 7417 107 XSlava 37
Автоматическое добавление баз в оснастку 1С предприятие и подключение их в SQL Server
Обработка генерирует скрипты для SQL Server и добавляет базы в оснастку 1С Предприятие.
1 стартмани
24.09.2019 4731 0 The Ded 3
Отключение доступа уволенным пользователям Промо
Давно хотели навести порядок в пользователях? Надоело, что в списке мешаются давно уволенные сотрудники? Тогда эта обработка для Вас!
3 стартмани
15.10.2013 57976 112 VBod 17
Обновление конфигурации 1С из cf по расписанию
Часто в процессе внедрения или активной разработки конфигурации возникает необходимость ежедневного обновления конфигурации базы данных.
1 стартмани
09.09.2019 5545 2 sivin-alexey 2
Кто уложил 1С, или мониторинг загрузки кластера в разрезе пользователей с помощью Grafana
Мониторингом различных параметров работы кластера 1С в zabbix сейчас уже никого не удивишь. Собственно потребление памяти, процов и места на серверах обычно настраивают первыми. Потом идет мониторинг в разрезе rphost'ов и различные метрики функционирования SQL сервера. Но вот когда уже все это есть, то временами возникает вопрос - какой же конкретно нехороший человек пытается съесть все (ну не все, но много) ресурсы сервера? Можно смотреть в консоль кластера и ловить редиску там. Можно анализировать журнал регистраций, включать технологический журнал или накапливать статистку в специализированных базах 1С. Но, "настоящим" сисадминам проще как-то с внешними скриптами, базами данных и, например, Grafana. Расскажу что у нас получилось.
1 стартмани
02.09.2019 17082 41 DonAlPatino 29
Установка 1C на Ubuntu 19.04
Установка платформы на примере (8.3.15.1565) на Ubuntu 19.04
1 стартмани
28.08.2019 19657 7 gubar 33
Инструкция по установке и настройке SQL Server и 1С Промо
Данный мануал позволит практически каждому пользователю пошагово установить и произвести первоначальную настройку SQL Server и 1С (клиент-серверный вариант). Основой для данной инструкции послужил SQL Server 2014 и 1С Предприятие 8.3, также данная инструкция может работать и для других версий SQL Server и 1С Предприятия.
1 стартмани
06.04.2016 96767 1125 LastSoldier 48
Удаленный доступ к 1С используя SSH Тунель
Предлагаемая обработка открывает удаленный доступ к серверу 1С или клиентской машине через SSH-тунель.
1 стартмани
04.08.2019 12656 5 Sedaiko 7
Service Desk. Конфигурация для администрирования баз 1С и техподдержки IT-отдела.
Простенькая конфигурация по обслуживанию баз 1С и IT-структуры организации для системных администраторов, программистов, IT отдела.
2 стартмани
15.07.2019 12762 85 SanchoD 19
Конфигурация: IT Unit
В помощь системным администраторам, занятым обслуживанием малого и среднего бизнеса. Конфигурация по учету оборудования, сервисов, сроков действия, записная книжка контактов, паролей и другое.
1 стартмани
03.07.2019 11630 76 riposte 15
Обработка для управления подключениями пользователей и создание бэкапа КЛИЕНТ-СЕРВЕРНОЙ базы данных 1С 8.2-8.3 (управляемое приложение,"такси") Промо
(©Топчий Д.Ю.) Данная обработка позволяет легко и быстро отключить от любой БД одного или несколько пользователей одновременно, установить блокировку сеансов, что необходимо при регламентных операциях с БД, создать резервную копию базы, удалить "дубли" сеансов. Обработка отключает соединения и сеансы указанных пользователей, даже если сеанс или соединение были "повисшими". Возможна интеграция в любую конфигурацию! (Обновление от 11.03.2016, версия 3.0)
2 стартмани
06.11.2012 62828 619 hakerxp 44
Автозагрузка, установка платформы 1С (PowerShell)
Если у вас нет RDP, нет или не настроено AD, а обновить платформу на большом количестве ПК как-то надо, то Вам сюда.
1 стартмани
14.12.2018 6502 4 login1020 25
Показатели ОС сервера через WMIC (место на диске, количество оперативной памяти)
Обработка предназначена для исключительных ситуаций, когда программиста 1С не может, обычными средствами, получить такую информацию как место на дисках сервера, количество занятой оперативной памяти и так далее.
5 стартмани
23.11.2018 5186 5 PerlAmutor 0
1С в Windows docker контейнерах
Создаем Docker-контейнер для windows-версии 1C. Контейнеры позволяют подготовить рабочую среду на любой актуальной версии windows. Благодаря данной технологии можно беспрепятственно запускать требуемую версию сервера 1С или несколько серверов различных версий на одном сервере.
1 стартмани
02.10.2018 35862 43 lishniy 42
Запуск любой внешней обработки по расписанию Промо
Часто хочется запустить внешнюю обработку по расписанию, но непонятно как бы это сделать не коцая конфигурацию, а оставив ее типовой. Теперь это больше не проблема.
1 стартмани
15.03.2012 95633 368 Skimen 60
Автоматическое отключение пользователя из системы 1С:Предприятие в случае, когда пользователь не работает в запущенном сеансе
Доработка сделана через расширение, платформа 8.3.12.1529 (8.3.11.2867), работает на конфигурациях 1С: ЗУП, БП, КА, ERP и т.д. в общем на всех основных конфигурациях 1С: Предприятие. Часто бывает, что в организации пользователь с утра запускает 1С и уходит на весь день по своим делам, а лицензия израсходована. Для оптимизации использования лицензий на предприятии и сделана данная доработка. Доработка позволяет в автоматическом режиме выбрасывать пользователей из системы 1С если пользователь не работает в системе. По умолчанию проверка активности пользователя происходит через 2 часа после запуска системы, но данный параметр можно настраивать отдельно для каждого пользователя. Если пользователь не активен его сессия закрывается. Расширение работает как в клиент - серверном так и в файловом варианте работы 1С
Для типовых баз разных версий готовится расширение. Есть некоторый шаблон в виде файла cfe. Необходимо выгрузить расширение в файлы, программно заменить один модуль и собрать расширение обратно.
Как это сделать, не подскажете?
В документации нашел только 2 варианта:
1) выгрузить в файлы из расширения, подключенного к конфигурации и загрузить из файлов обратно.
2) выгрузить их хранилища, загрузить в хранилище, обновить расширение в конфигурации из хранилища.
Оба варианты неудобны.
(1) И давно v8unpack понимает расширения конфигураций? И будет ли работать с платформами 8.3.12, 8.3.13?
v8unpack версия 10-ти летней давности. Боязно как-то отдавать клиентам продукт, собранный нетиповым способом.
Пробовал воспользоваться ключами DumpExternalDataProcessorOrReportToFiles и LoadExternalDataProcessorOrReportFromFiles для внешних обработок. Почему-то ругается на расширение, что это не внешняя обработка ;)
Есть ещё варианты?
/DumpConfigFiles <каталог выгрузки>[-Module] [-Template] [-Help] [-AllWritable] [-Picture] [-Right][-Extension ]
— выгрузка некоторых свойств объектов метаданных конфигурации (модулей, макетов, картинок, прав доступа и справочной информации). Допустимо использовать следующие параметры:
(7)
Автор не хочет DUMP из конфигурации. У него мождет не быть конфигурации, а есть только расширение в CFE.
(6) Это тоже нетиповой способ доступа к внутренностям файлов 1С. Так можно дойти до того, что для удаления элемента справочника воздействовать на пластину HDD на физическом уровне. Остановить диск, вынуть пластину, затереть данные, вернуть пластину обратно.
(7) (8) - про это отмечено в шапке топика.
Допустим нужно подготовить 10 расширений для разных конфигураций. Значит нужно подготовить 10 баз 1С и подключать к каждой расширение.
Если нужно внести изменение в общий шаблон расширения, придётся потом от 10 баз отключить старые версии расширений и подключить новое.
Если это действительно единственный путь, то придётся так и поступить.
Но вдруг есть более быстрое и правильное типовое решение.
(11) Почему? На одной базе ведется разработка. После тестирования выгружаю в файл и на основе образца генерирую 10 аналогичных с другим текстом одного из модулей.
Механизм расширения конфигурации 1C
Приветствую уважаемый читатель, в данной статье предлагаю ознакомиться с Механизмом расширения конфигурации 1С 8.3, в частности мы познакомимся с его работой в режиме Адаптация, а также рассмотрим пример программного изменения Формы объекта при помощи расширения. Ну, а сейчас немного теории…
Как указано в описании: «Механизм расширения конфигурации – это специальный механизм, предназначенный для доработки расширяемой конфигурации без изменения этой конфигурации (в том числе без снятия с поддержки).»
Основным назначением расширения конфигурации является доработка прикладных решений (конфигураций) под нужды клиента. При этом нет необходимости в снятии дорабатываемой конфигурации с поддержки. В результате сохраняется простота сопровождения и обновления типового прикладного решения, стоящего на поддержке.
При разработке расширений следует учитывать следующие факты:
— в системе могут функционировать более одного расширения.
— расширяемая конфигурация в любой момент может быть изменена, например, в результате обновления и разработчик расширения никак не может повлиять на возможность или невозможность обновления
Расширение может иметь одно из следующих назначений:
Исправление — предназначено для оперативного исправления ошибок в прикладном решении. В таких расширениях часто применяется метод с помощью аннотации Вместо. Как правило это назначение предназначено для определенной версии прикладного решения. При выходе следующей версии этого решения автор расширения должен проводить анализ применимости созданных расширений в новой версии.
Адаптация — предназначено для адаптации прикладного решения под условия конкретного заказчика. Предполагается, что в каждый момент времени в информационной базе существует минимальное количество таких расширений. Если в одно расширение невозможно включить весь набор изменений, то рекомендуется расширения с назначением Адаптация разбивать по максимально крупным блокам расширяемого прикладного решения.
Дополнение — предназначено для реализации новых возможностей прикладных решений, которые минимально привязаны к конкретной версии прикладного решения. В качестве примера можно привести создание нового набора отчетов, который отсутствует в прикладном решении. Предполагается, что таких расширений может быть произвольное количество.
Расширение создается в конфигураторе, хранится в информационной базе и может быть выгружено в файл. Для подключения расширения, сохраненного в файл, в прикладное решение нет необходимости использовать конфигуратор. Подключить расширение можно с помощью стандартного функционала (Все функции Стандартные Управление расширениями конфигурации). Подключить расширение также используя программный интерфейс, предоставляемый платформой.
Ограничения использования расширений:
Расширения конфигурации не поддерживают создание следующих собственных объектов:
— Подписки на события.
— Функциональные опции и параметры функциональных опций.
— Бизнес-процессы и задачи.
— Внешние источники данных.
Не поддерживается расширение следующих объектов:
— Нельзя создавать подчиненные подсистемы.
— Если объект не может быть собственным объектом расширения его расширение также не поддерживается.
— Состав значений перечислений;
Не поддерживается добавление реквизитов и табличных частей для:
— План видов характеристик;
— План видов расчетов.
Не поддерживается изменение структуры регистров всех видов. Поддерживается только расширение состава регистраторов.
В базовых версиях прикладных решений работа с расширениями не поддерживается.
Стоит помнить, что Механизм расширения конфигурации – это перспективный постоянно развивающийся механизм и с выходом новых версий платформ их функционал только расширяется и лишается текущих недочетов.
Как добавить расширение конфигурации 1С 8.3
Предлагаю рассмотреть задачу добавления нового Справочника «Категория должности по Классификатору Предприятия» с выводом его значения на Форму Справочника Должности, на базе Конфигурации ЗУП 3.1
Для создания расширения необходимо запустить 1С в режиме конфигуратора.
В конфигураторе необходимо зайти в меню «Конфигурация» и выбрать пункт «Расширения конфигурации». Откроется окно со списком расширений (если они есть). Далее нажмем кнопку «Добавить». Мы увидим диалоговое окно создания расширения:
Стоит отдельно выделить поле Назначение – необходимо выбрать его значение в зависимости от решаемой задачи – т.к. мы выполняем добавление объектов по требованиям конкретного заказчика – нам подойдет вариант «Адаптация».
После нажатия на кнопку «ОК» — двойным кликом по появившейся строке откроем Конфигурацию расширения. Мы увидим практически пустое дерево конфигурации.
Добавим в расширение справочник Категория должности по Классификатору Предприятия. Стоит обратить внимание, что в название всех объектов процедур и функций созданных в расширении, добавляется его префикс (в нашем случае Расш1_);
Разместим наш новый Справочник в Подсистеме «ШтатноеРасписание» для этого необходимо добавить эту подсистему в Расширение – Перейдем в дерево основной Конфигурации и нажмем правой кнопкой мыши на строке с нужной подсистемой и выберем пункт «Добавить в расширение».
Теперь мы можем управлять ее составом, добавим наш новый объект в подсистему.
Далее добавим в расширение Справочник Должности и добавим для него новый реквизит КатегорияДолжности с типом СправочникСсылка.Расш1_КатегорияДолжностиПоКлассификаторуПредприятия
Далее необходимо решить задачу с выводом реквизита КатегорияДолжности на форму Справочника Должности, реализовать это можно двумя способами:
— Интерактивно, добавив Форму «ФормаЭлемента» в расширение
— Программно, не добавляя Форму Справочника в расширении, а добавив подходящую процедуру, вызываемую в обработчике Формы «ПриСозданииНаСервере» в расширение.
Останавливаться на плюсах и минусах каждого решения не будем, а ниже рассмотрим оба варианта.
Интерактивное изменение Формы в расширении.
Для того чтобы вывести Реквизит на форму интерактивно: необходимо добавить саму Форму «ФормаЭлемента» в расширение. Обращу ваше внимание на следующий момент – для того чтобы появилась возможность Интерактивного добавления Реквизита объекта на форму необходимо сам Объект тоже добавить в расширение.
Далее добавим новый Реквизит в подходящую Группу на форме.
Запустив 1С в режиме Предприятия убедимся, что новый Справочник появился в интерфейсе
А открыв элемент справочника Должности, увидим, что добавляемый реквизит Категория должности также в нужном месте.
Программное изменение Формы в расширении.
Для того чтобы программно добавить элемент на форму нам необходимо определится в каком месте это сделать оптимально с точки зрения простоты дальнейшей поддержки и обновления конфигурации.
Предлагаю воспользоваться одной из процедур вызываемых в обработчике Формы «ПриСозданииНаСервере», в которую передается наша Форма в качестве параметра например УправлениеСвойствами.ПриСозданииНаСервере.
Перейдем в Общий модуль УправлениеСвойствами где находится данная процедура, и кликнем правой кнопкой мыши по процедуре ПриСозданииНаСервере. В выпадающем меню выберем пункт «Добавить в расширение»
Система предложит нам выбрать одну из аннотаций, подробнее о каждой из них рассмотрим в следующих публикациях, а сейчас выберем «Вызывать после»
После проделанных процедур увидим что в Расширение был добавлен общий модуль УправлениеСвойствами и процедура Расш1_ПриСозданииНаСервере с аннотацией &После(«ПриСозданииНаСервере»)
Далее в добавленную процедуру поместим следующий код:
Запустим 1С в режиме предприятия и убедимся, что на форме также появился добавленный реквизит «КатегорияДолжности (пр.)»
Готовое расширение можно выгрузить в файл перейдя в конфигураторе в меню «Конфигурация» и выбрать пункт «Расширения конфигурации». В открывшемся списке расширений по правой кнопкой мыши можно вызвать выпадающее меню, либо выбрать пункт командной панели «Конфигурация» и выбрать пункт «Сохранить конфигурацию в файл…». На выходе мы получим Файл типа *.cfe который можно передать заказчику.
Таким образом, мы научились создавать собственные расширения на примере конкретного кейса.
Читайте также: