🔥 Горящие вакансии
Все статьи

Как работать, когда тормозит сервер 1С

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

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

Итак, имеем конфигурацию на базе УПП: 500 справочников, 500 документов, 500 РС, 500 РН. База размером 500+ Гбайт. Процесс выйти из режима 1С:Предприятие, обновить конфигурацию базы данных, вновь войти – занимает ~7 минут, другими словами 8 раз внести незначительные изменения в конфигурацию, обновить ее и проверить результат занимает – 1 час! Естественно, на это может не хватить нервов и оценка выполнения задачи будет достаточно высокая или если это не заложить в оценку, то она будет превышена. Таким образом простейшие доработки дизайна форм могут занять продолжительное время. Но есть решение… можно разрабатывать во внешних обработках.

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

1. Создаем внешнюю обработку;

2. Переносим в нее форму списка из документа чтобы не рисовать свою, хотя в некоторых сложных случаях проще нарисовать свою форму из одного табличного поля с типом ДокументСписок / СправочникСписок. Делаем эту форму основной – чтобы открывалась именно она при запуске обработки. Переносим в обработку форму документа;

Как работать, когда тормозит сервер 1С

3. Все. Теперь работаем только в созданной внешней обработке. В форме списка на вкладке реквизиты создаем новый реквизит «ВнешняяОбработка» с типом наша внешняя обработка.

Как работать, когда тормозит сервер 1С

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

Важно! Имя реквизита необходимы вписывать так как оно указано на вкладке реквизиты, поиск по части имени здесь не работает и если вы ошибетесь – то будет создан новый реквизит формы 🙂

Как работать, когда тормозит сервер 1С

5. После этого в той же форме списка для табличного поля, содержащего ДокументСписок создаем события «Выбор» и «ПередНачалоомДобавления»

Как работать, когда тормозит сервер 1С

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

Код обработчиков событий будет одинаков от документа к документу(за исключением имени объекта в строке ДокументОбъект = Документы.):

Процедура ДокументСписокПередНачаломДобавления(Элемент, Отказ, Копирование)

    Отказ = Истина;

    ДокументОбъект = Документы.ЗаказПоставщику.СоздатьДокумент();

    ФормаДокумента = ПолучитьФорму("ФормаДокумента");
    ФормаДокумента.ДокументОбъект = ДокументОбъект;
    ФормаДокумента.Открыть();
КонецПроцедуры
Процедура ДокументСписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    ДокументОбъект = ВыбраннаяСтрока.Ссылка.ПолучитьОбъект();

    ФормаДокумента = ПолучитьФорму("ФормаДокумента");
    ФормаДокумента.ДокументОбъект = ДокументОбъект;
    ФормаДокумента.Открыть();
КонецПроцедуры

6. Теперь можно открыть форму документа из внешней обработки и проводить её доработку – форма выглядит так же, как в конфигурации

Как работать, когда тормозит сервер 1С

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

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

Как работать, когда тормозит сервер 1С

Нередко заказчик просит дорабатывать формы типовых объектов не в визуальном редакторе форм, а программно, что вполне логично вытекает из Правил доработки типовых конфигураций 1С для дальнейшей поддержки и обновления (https://infostart.ru/public/647048/). Для решения поставленной задачи служат различные декомпиляторы элементов формы, я, например, пользуюсь доработанной версией этой обработки https://infostart.ru/public/99363/. Также существуют варианты для управляемых форм. Моя последовательность доработки внешнего вида формы такова:

  1. Дорабатываем форму во внешней обработки – прямо в визуальном редакторе;
  2. Декомпилируем добавленные элементы на форму внешней обработки;
  3. Убираем с формы добавленные элементы, вставляем в форму программный код, добавляющий, изменяющий элементы формы;
  4. Проверяем как это выглядит во внешней обработке;
  5. Если во внешней обработке все ОК – переносим код в форму объекта в конфигурации;
  6. Обновляем конфигурацию базы данных, проверяем все ли корректно работает.

Итоги

Подводя итоги хочу пробежаться по ключевым моментам:

  • Мы рассмотрели методику доработки форм документов и справочников во внешних обработках;
  • Изменения в дизайне форм следует производить программно, а не в визуальном редакторе – это только в том случае, если вы планируете обновляться. Ссылка на один из декомпиляторов форм (https://infostart.ru/public/99363/).

Оставить коментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Отправить резюме

    Я согласен на обработку персональных данных в соответствии
    со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

    Отправить резюме

      Я согласен на обработку персональных данных в соответствии
      со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

      Pекомендовать друга

        Отправьте контактные данные вашего друга и предупредите его, что мы с ним свяжемся. Когда друг успешно отработает 3 месяца, вы получите 20 000 ₽.


        Выбрать вакансию
        • Bitrix-разработчик
        • Программист 1С
        • Консультант-аналитик 1С
        • Проекты для команды специалистов 1С
        • Проекты для специалистов 1С
        • Стажёр-программист 1С
        • Консультант по финансам Microsoft Dynamics AX
        • Консультант Microsoft Dynamics AX на зарубежные проекты
        • Ведущий консультант Microsoft Dynamics 365 Finance and Operation
        • Ведущий разработчик Microsoft Dynamics AX на зарубежные проекты
        Я согласен на обработку персональных данных в соответствии
        со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

        Pекомендовать друга

          Отправьте контактные данные вашего друга и предупредите его, что мы с ним свяжемся. Когда друг успешно отработает 3 месяца, вы получите 20 000 ₽.


          Выбрать вакансию
          • Bitrix-разработчик
          • Программист 1С
          • Консультант-аналитик 1С
          • Проекты для команды специалистов 1С
          • Проекты для специалистов 1С
          • Стажёр-программист 1С
          • Консультант по финансам Microsoft Dynamics AX
          • Консультант Microsoft Dynamics AX на зарубежные проекты
          • Ведущий консультант Microsoft Dynamics 365 Finance and Operation
          • Ведущий разработчик Microsoft Dynamics AX на зарубежные проекты
          Я согласен на обработку персональных данных в соответствии
          со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

          Спасибо!

          Мы получили ваше резюме. Менеджер свяжется с вами в течение трех дней

          Горящие вакансии