Когда клиент просит “добавь мне в Бухгалтерию штуку, как в УТ 11”.
Пример доработки с использованием расширения – и его оптимизация



С нуля: собираем расширение для доработки 1С

Представьте, что клиент увидел какую-то новую фишку – и просит добавить в свою конфигурацию.

Вопрос не в том, чтобы скопировать – это было бы нарушением прав 1С.

Вопрос в том, как сделать это быстро, тиражируемо и безвредно для клиента :)

В сегодняшних видео мы разберем, как в 1С:Бухгалтерию добавить функцию быстрого создания документов “Реализации товаров и услуг”, как в УТ 11.

И даже выложим само расширение, чтобы Вы его попробовали :)

Постановка задачи

В справочнике Контрагенты должна появиться кнопка / команда “Создать реализацию”, как в УТ 11.

При нажатии на кнопку – создается новый документ и заполняется данными последней отгрузки на этого клиента.

Видео № 1 – разработка расширения для типовой 1С:Бухгалтерии

Кейс - доработка БП 3.0 при помощи расширений

Видео № 2 – Оптимизация решения

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

Профессиональный разработчик это точно должен знать :)

Рекомендации по доработке БП 3.0 при помощи расширений

Для тех, кто хочет пощупать :)

Скачайте разработанное расширение.

Подключите его к последнему релизу 1С:Бухгалтерии 8 (нужна платформа 8.3.10 или 8.3.11).

Результат налицо :)

Думаете о своей нетленке? Используете доработки для нескольких клиентов?

Сливки снимают только первые :)

44 комментариев к “Когда клиент просит “добавь мне в Бухгалтерию штуку, как в УТ 11”.
Пример доработки с использованием расширения – и его оптимизация

  1. shatto сказал:

    Добрый день!
    А нет ли где-нить инфы, скоро ли ожидается работа расширений с планом счетов?
    Появилась необходимость на 20-м счете изменить свойство “Только обороты” у субконто Статьи затрат, жаль, что не получается решить вопрос только с помощью расширения. Придется изменять свойство в конфе, и таскать всегда с собой.

    • Василий Ханевич сказал:

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

  2. gradus сказал:

    А где обрабатываются структуры ЗначенияЗаполнения и ЗначениеКопирования? В модуле документа и модуле формы документа РеализацияТУ такого не увидел.

  3. Quantum сказал:

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

    • Василий Ханевич сказал:

      Добрый день!
      Бездумно вообще ничего делать не стоит:)
      В видео показывалось, что после уменьшения количества контролируемых свойств разработанное расширение работает корректно.
      Если в расширении доработан текст запроса либо внесены другие изменения, а потом при обновлении конфигурации на следующий релиз перестанут существовать реквизиты, то расширение в любом случае необходимо доработать.
      Что касается оптимизации, то в видео специально отмечаем, что это оптимизация только с точки зрения количества контролируемых свойств. Но при этом могут возникать трудности при доработке такого расширения, например, при открытии в конфигураторе текста запроса динамического списка.

  4. fimbulwinter13 сказал:

    Добрый день!
    Пробую создать расширение с добавлением регистра сведений на конфигурации ERP 2.4.1.206
    Выдает следующую ошибку: Имя команды не может совпадать с именем стандартной команды.
    Режим совместимости конфигурации установлен в “Не использовать”.

      • Евгений Семёнов сказал:

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

        • Василий Ханевич сказал:

          Добрый день!
          Возможно, дело в режиме совместимости используемых конфигураций.

          • Евгений Семёнов сказал:

            Спасибо. Точно. Конфигурация работающая на платформе 8.3.11 в режиме совместимости 8.3.8 на такие ошибки указывает, но обновить конфигурацию БД позволяет.

  5. Soptel сказал:

    Добрый день!
    БП 3.0.54.20 подключаю расширение (скачал по вашей ссылке) в режиме пользователя через управление расширениями/добавить, получаю вот такое сообщение: (Критичная) : Значение контролируемого свойства РежимСовместимостиИнтерфейса у объекта не совпадает со значением в расширяемой конфигурации.

    Подскажите пожалуйста, что я делаю не так?
    Спасибо.

    • Василий Ханевич сказал:

      Добрый день!
      Расширение создавалось под БП 3.0.53. В этом релизе значение свойства Режим совместимости интерфейса установлено в Такси:
      Такси
      А в БП 3.0.54.20 значение свойства Режим совместимости интерфейса изменилось на Такси. Разрешить Версия 8.2.

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

      • Soptel сказал:

        Спасибо, в плане подключения помогло.
        Расширение подключил, только команда создать реализацию не срабатывает.

          • Soptel сказал:

            Сделал: “Странно, но как сделал команду
            СозданиеРеализации с типом вызова Перед (а не После) на 8.3.11 все заработало”.

            Помогло.

            Спасибо за материал.

    • Василий Ханевич сказал:

      Добрый день!
      Расширение разрабатывалось на 8.3.10. Что именно не получается на 8.3.11?

      • KulikovSV сказал:

        Просто не срабатывает команда, в отладке не останавливается. Конфигурация одна и та же, на 8.3.10 все работает.

        • KulikovSV сказал:

          Странно, но как сделал команду
          СозданиеРеализации с типом вызова Перед (а не После) на 8.3.11 все заработало

        • Василий Ханевич сказал:

          Первым делом я бы проверил, включена ли отладка на сервере (ключ -debug в строке запуска службы сервера 1С:Предприятие). Каких-то явных проблем с точками останова в 8.3.11 я не обнаружил. Возможно, они просто мне не попались.

    • Станислав сказал:

      У меня тоже сначала не отработало. Потом проставил в форме команды нужную процедуру два раза (там два окошка), заработало.

      • Василий Ханевич сказал:

        На bugboard.v8.1c.ru не нашел похожей ошибки. Возможно, еще не зарегистрирована.

  6. Кеттлер сказал:

    Нормальный голос. Нужно уметь абстрагироваться от собственных пунктиков.

    • Василий Ханевич сказал:

      Добрый день!
      Расширения не передаются с обменом. Нужно выполнять это вручную или реализовать свой функционал. В комментарии описан пример реализации.

  7. IpotekaLand сказал:

    Добрый день. Хотелось бы услышать пару слов о возможностях расширений при групповой разработке? Всегда пытаемся начать с расширений, но в итоге возвращаемся обратно в Хранилище (разработчик поработал, сохранил, потом поработал другой разработчик… ну очень не удобно). Может быть реальные практические идеи?

    • Василий Ханевич сказал:

      Добрый день!
      Хранилище конфигурации не поддерживает работу с расширениями. В релизе 8.3.12, который по планам выйдет в феврале 2018, заявлена поддержка работы с расширениями при помощи хранилища. Так что пока ждем.
      Пока придется вручную объединять наработки всех программистов. Расширение для загрузки в рабочую базу получаем в одной тестовой базе. Разработчик в собственной базе вносит в расширение изменения, сохраняет расширение в файл. В тестовой базе при помощи сравнения-объединения собираются изменения всех разработчиков. Для удобства лучше изменять номер версии расширения в тестовой базе. Такое расширение после тестирования можно загружать в рабочую базу. Также рекомендуется хранить версии расширений в виде файлов на диске.

  8. vladiplut сказал:

    Да много интересного!Вот это реальный шаг вперед.Век живи,век учись.
    Молодцы ребята что такой курс сделали.

  9. Артем Черкасов сказал:

    А вот вопрос по существу.
    А где расширение хранит данные?

    Н-р я делаю расширение для документа “Заказ клиента” (ERP), у меня появляются поля связанные со справочником номенклатура, т.е. по сути я выбираю туда свою номенклатуру

    Если расширение “отпадёт” по каким-то причинам, но я его потом подключу вновь, данные мои “подхватятся”? или будут утрачены на веке вечные?!

    • Василий Ханевич сказал:

      Если расширение добавляет новый реквизит в справочник, то для этого справочника создаётся отдельная (“расширенная”) таблица с полем для нового реквизита. Подробнее, с демонстрацией таблиц СУБД во втором видео на странице Расширения в 8.3.11: то, что изменит стандарты доработки 1С. Плюс видео, конечно :)
      При удалении расширения из базы данных будут навсегда удалены все данные, которые были добавлены при помощи этого расширения.
      Если из-за ошибки при проверке контролируемых свойств расширение не подключится, то добавленные расширениями данные в таблицах базы физически останутся. Данные, находящиеся в этих полях, будут недоступны до тех пор, пока не будет решена проблема с подключением расширения. После этого будет возможна полноценная работа с этими данными. Данные удаляются из базы только при удалении самого расширения.

      • ira778899 сказал:

        А если второе поле – таблица одна “расширенная” ? Похоже они пошли по тому же пути, что и Zibel, там тоже создаются дополнительные таблицы при добавлении полей, только их может быть несколько, в результате в базе таблиц около 5000, а реально используются около 800. Не экономичная модель для БД, лишние связи.

        • Василий Ханевич сказал:

          Расширенная таблица для конкретного справочника всегда будет одна. При этом неважно, сколько расширений, изменяющих этот справочник загружено в базу. В расширенной таблице будут все поля из всех расширений.

      • Артем Черкасов сказал:

        Итак, резюмируя ваш ответ, сделал вывод:
        Пока я расширение сам не отключу, какие-то сбои при его работе не удалят данные вносимые с помощью расширение

        • Василий Ханевич сказал:

          Да, но с важной оговоркой – если Вы не столкнетесь с ошибкой платформы, с недокументированным поведением:(

          • Артем Черкасов сказал:

            Ну, от этого, увы, никто не застрахован =(
            Главное знать поведение программы в документированных случаях ))

  10. nagaitseff сказал:

    Спасибо, здорово. Подробно, информативно, без лишних слов. Как всегда на высоте!!!

  11. Артем Черкасов сказал:

    Как всегда … всё очень доступно и понятно!

    зЫ: Я не знаю почему, но голос данного диктора у меня вызывает дикую улыбку )))))))))))))))))))))))))))))))))))

    • Василий Ханевич сказал:

      Хорошо, что не слёзы! На ускоренном воспроизведении смотрите? :))

      • Артем Черкасов сказал:

        нет, на обычном )))
        я думаю на ускоренном побегут слёзы уже )))))))))))))))

Добавить комментарий

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

Мы используем файлы cookies, чтобы сделать сайт удобнее.
Продолжая просмотр сайта, Вы соглашаетесь с их использованием.
Подробнее