1с как разобраться в типовых конфигурациях

Обновлено: 06.07.2024

Типовые конфигурации слишком сложные, при этом сложность не соответствует сложности предметной области. Разработка на 1с уже давно не так проста, как это есть на уровне возможностей платформы, по причине необоснованного усложнения ТК. В конфигурациях должен быть небольшой по объему и понятный по сути код. Ведь основные сложные проблемы программирования решены на уровне СУБД (MS SQL, Oracle и т.д.) и самой платформы 1С, что по идее должно позволять создавать простые и понятные конфигурации

- Рост сложности не связан с усложнением предметной области или средств платформы (платформа в целом даже улучшилась, но недостаточно). Скорее всего рост сложности в ТК произошел из-за того, что УМЫШЛЕННО создаются монстрообразные алгоритмы объемом в тысячи, а то и десятки тысяч строк кода, вызывается множество объемных и неочевидных по алгоритму процедур. Рост сложности конфигураций влечет за собой рост сложности настройки и трудозатрат при изменениях под клиента, а оплата за доработки и настройку почти всегда пропорциональна количеству выставленных клиенту часов. «Выгода» очевидна, только кому? На форумах даже используют термин «коммерческий» код. При том что чтобы средствами платформы например сделать запрос и сформировать проводку как правило не нужно больше двухсот строк кода, модули проведения или заполнения документов могут занимать десятки тысяч строк кода! В них вызывается множество громоздких и неочевидных процедур. Стандартным стало использование в ТК в модулях проведения нескольких таблиц значений, все это выгружается-загружается-сворачивается-обрабатывается и т.д. на встроенном языке 1с. Разобраться в этих гигантских процедурах достаточно непросто. На форумах даже спрашивают, не роботы ли или инопланетяне пишут ТК. Если раньше практически любой алгоритм можно было понять относительно просто через конфигуратор и отладчик, то сейчас проще спросить на форуме возможные причины формирования или неформирования проводок, чем с негарантированным результатом неделю копаться в гигантских модулях. ТК стали изучать через видеокурсы, а не через конфигуратор как это было в 7.7 версии. Регулярно возникают одни и те же темы на форумах, например как закрыть 20 счет, ведь разобраться достаточно непросто даже опытному специалисту, учитывая неадекватно большой и сложный код в закрытии месяца.
- Другим аспектом сложности ТК является то, что при решении каких-либо задачи предметной области зачастую выбираются неадекватно сложные методики и алгоритмы, как следствие даже опытному пользователю сложно в режиме работы с базой разобраться что нужно сделать чтобы выполнить какие-либо регламентные процедуры, также это усложняет и программный код. Принципиальный момент в том, что сложность не соответствует сложности решаемых задач.

Но это не всегда так :)

И это касается не только типовых, но и самописных решений

Допустим, у Вас есть собственная нетленка (пусть даже существующая в единственном экземпляре).

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

Конечно, но, возможно, не в таком объеме, как разработчику.

В любом случае – Вы занимаетесь постановкой задач для собственных программистов или фрилансеров.

И Вы должны полностью проверить, как выполнена работа, будут ли формы корректно работать в разных видах клиентов.

Можно, конечно, этого не делать. Но тогда не стоит удивляться, если через месяц приложение, запущенное в веб-клиенте просто не будет работать.

В сегодняшнем видео мы рассмотрим, как правильно писать программный код в новых условиях

В видео будут рассмотрены:

Как запустить 1С в веб-браузере


  • Установку и настройку веб-сервера Apache
  • Решение стандартной проблемы c ipv6
  • Инсталляцию модуля расширения веб-сервера
  • Публикацию базы на веб-сервере.


В этом уроке рассмотрим, как в новой парадигме программирования работать с методами Предупреждение() и Вопрос().


Пример разработки печатной формы в 1С

В этом видео мы готовим печатную форму, в которой будет открываться форма для ввода параметров.


В финальном видео этой серии мы покажем, как открывать произвольные формы без режима модальности.

Используйте эти приемы при отказе от модальности в своих конфигурациях.


Курс «Профессиональная разработка интерфейсов и форм в 1С:Предприятии 8.3»

Не откладывайте свое обучение!

Комментарии / обсуждение (95):

Для чего вообще мучиться в браузере, если есть терминальный доступ?
Считаю, что разработчики оторвались от реальности.
Разработка стала сложнее. 1С тормознее.

Судя по всему, вопрос риторического характера.

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

Добрый день!
Существуют ли типовые конфигурации 1С, которые можно использовать за образец?
Может БСП?

Здравствуйте! Скажите, правда ли, что в будущих версиях веб-сервер будет встроен в 1С и апач устанавливать будет не нужно?

Да, все верно. В платформе 8.4 веб-сервер будет частью кластера. Будет ли это работать для файлового варианта или нет, пока не известно.

По размещению на apache, как теперь зайти с другого компьютера на опубликованную базу? Подскажите пожалуйста!

Дали бы ссылку на apache

а в методических материалах курса где взять апач?

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

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


В качестве отсутствия единого подхода и качественного код-ревью можно привести простейшие примеры из ERP 2 или УТ 11.

А тем кто сделал доработку движений в прошлых версиях и обновлял систему? каково постоянно переписывать эти доработки под творческие метания разработчиков из 1С? Ведь именно это главная причина отказа от обновлений системы и того что регл.учет ведется в более стабильных базах.


Перечисления ВидыСостоянийНМА и СостоянияОС. Выполняют одну и ту же функцию, имеют примерно один и тот же смысл и почти одинаковые значения. Но имена не унифицированы. Такое чувство, что человеку писавшему функционал НМА было безразлично как написан функционал ОС и единой точки контроля над этими разработчиками не было. В учете ОС и НМА можно привести еще пару таких примеров, демонстрирующих отсутствие при разработке оглядки на то, что было написано раньше.

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

Напомню, что в системе стандартов и методик от 1С явно прописана нежелательность подобного подхода при разработке.


4. Везде и всюду неоправданное количество вложенных вызовов. Огромное количество методов-паразитов, содержащих одну строку кода! Об этом уже писали ниже.

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

Что касается темы этой публикации и избавления от модальности. Было бы замечательно если бы в качестве колбэк-функции передавалось не ее имя , а ее ссылка на метод. Например вместо

ПоказатьВопрос(Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтаФорма, ДопПараметры), "бла-бла-бла")

можно было написать просто

ПоказатьВопрос(Форма.ПриОткрытииЗавершение, ДопПараметры, "бла-бла-бла")

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

Начал искать работу, столкнулся с работодателями уверенными что программист 1С просто ОБЯЗАН знать все типовые конфигурации.
А зачем знать все типовые конфигурации? ну работал на ИТРП, ну в БУ в чем проблема изучить другую конфигурацию я так и не понял)

Должен ли программист 1С знать типовые конфигурации?

"знать типовые конфигурации" = закрытыми глазами написать идентичную конфигурацию по памяти?
(2) притом так и не просветили что именно должен знать в типовых конгфигурациях

(0) А где взять все типовые конфигурации, что бы их знать? Может купить и подписку на ИТС?

(0) Меня еще прикалывает пункт "отличное знание БУ и НУ", это на вакансию программиста :).

Отличное знание БУ и НУ только после 10 лет работы бухгалтером на разных участках

(0) ну требуют знать не все типовые. А основные. Как минимум в качестве консультанта. А то, что ты разберешься проблем нет. Только ты будешь разбираться за деньги работодателя.

(8) Ну тогда говори, что помимо зарплаты программиста пусть платят тебе еще и зарплату главбуха и финдира.

(9) Главное чтобы успевал разбираться - деньги-то от этого не зависят.

(9) >Как минимум в качестве консультанта:
УПП, ЗУП, БП, БГУ, ЗиКБУ, КД, УТ и тд. и тп. :)
(9) >Только ты будешь разбираться за деньги работодателя.
А за какие же деньги мне в них разбираться, то? За свои что ли?

(14) вот так прямо у одного работодателя и коммерческие организации и бюджетные :)

(15) Так собственно работодатель и ожидает готового специалиста, а не полуфабрикат. Тем более у работодателя как правило не более 3-4 типовых используется.

(12) Деньги зависят, особенно когда переложить затраченное время на задачу , на деньги. Сразу видно причем тут деньги.

(17) Да не зависят они при окладной системе оплаты. Оклад один фиг платить надо.
Идя спецом на конфу, на УПП например, вполне логично, что работодатель требует отличное знание конфы, иначе будешь свои костыли все время вместо готового писать
+(18) Или ты думаешь, что у такого требовательного работодателя все остальные работники неграмотные, и только программист 1С весь в белом?
(0) Это все фигня. Было время, когда работодатель писал в требованиях обязательное знание нескольких языков программирования.
(16) Ну. начнем с вопроса: где взять официальную инструкцию к типовой конфигурации?
(18) Правда? И сидишь месяц разбираешься? Ты же работой занят - разбираешься. А работодатель результат ждет.
(23) Какая разница? На фикси ты итак и эдак сидишь месяц. Различается только бездельничаешь ты или вникаешь. Тем более что чаще всего требуется не просто знать конфигурацию, а приложить эти знания на специфику работодателя - а тут один фиг надо разбираться, пробуя разные методики учета и анализируя результат.
(25) Т.е. чтобы изучить УПП, надо купить коробку за 200 тыр.?
(23) Обычно, когда ставится задача, озвучиваются сроки. Если работника и работодателя срок устроил - значит все в шоколаде. Если сроки не устраивают, значит либо работник, либо работодатель ищет другие способы решения задачи.
(30) Да в ларьках он БП обновляет. судя по категоричности суждений.
(27) Ну при таком отношении на месте фикса может быть внешний подрядчик, что чаще и случается :)
(16) да есть такое как самообразование например сижу яву изучаю, а то что нужно работодателю он как бы и должен суетиться)
(21) такие времена ещё не прошли .

(34) Ну дык где ты еще инструкцию возьмешь к УПП?

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

(30) УПП (Без МСФО), КА, УТ, БУХ, ЗУП, УАТ (Рарус), ТЛЕ(Рарус). Это то что на нашем рынке наиболее востребовано.
(41) А чо ИТРП не знаешь? У меня пара клиентов с ИТРП были.

(39) Это требование закона какого то федерального об авторских правах. Как изучить УПП не имея конфигурации и платформы?

П.С.
Где варезники скачать я даже не спрашиваю, правилами форума запрещено :)

Эта статья является логическим продолжением цикла статей «Первые шаги в разработке на 1С». В ней описывается среда разработки на платформе 1С, которая получила название “Конфигуратор”. Изучив данный материал, вы узнаете:

  • Что такое дерево объектов, для чего оно нужно и как с ним работать?
  • Для чего нужна палитра свойств, как её открыть, как в ней что-то отыскать?
  • Когда нужно настраивать различные параметры конфигуратора и как это сделать?
  • Что нужно сделать, чтобы можно было внести изменения в типовую конфигурацию?
  • Как запустить конфигурацию в режиме отладки?
  • Как подключиться к клиентской сессии в режиме отладки и посмотреть, что там происходит?

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

Применимость

В статье рассматривается платформа «1С:Предприятие» версии 8.3, поэтому вся информация актуальна для текущих релизов.

Основные приемы работы в конфигураторе

Дерево объектов – это первое, с чем Вы сталкиваетесь при запуске конфигуратора.

После запуска конфигурации для разработки, чтобы увидеть дерево объектов, необходимо выбрать один из двух пунктов меню Конфигурация (Открыть конфигурацию, если конфигурация еще не открыта, или Окно конфигурации, если закрыто просто само окно конфигурации).

Также можно использовать соответствующие кнопки.

Дерево объектов конфигурации отображает: какие сущности есть в конфигурации.

Дерево конфигурации

С помощью дерева объектов можно создавать новые элементы, редактировать, добавлять новые реквизиты и свойства.

Данное окно имеет режим закрепления. Кнопка с пиктограммой в виде скрепки в правом верхнем углу окна Конфигурация позволяет делать его прячущимся в тот момент, когда оно не активно.

Скрыть окно конфигурации

Возможен поиск нужного объекта по первым буквам. Курсор автоматически позиционируется на нужном объекте.

Иногда дерево объектов называют метаданными. Во встроенном языке есть специальное свойство, которое так и называется Метаданные (т.е. данные о данных).

Одна из функций конфигуратора – это выгрузка/загрузка информационной базы. При выгрузке информационной базы получается упакованный файл с расширением dt.

Эту функцию мы уже подробно рассматривали в предыдущих статьях. Она используется в следующих случаях:

  • для переноса базы данных из одного места в другое;
  • как один из вариантов выполнения архивирования;
  • для перевода файлового режима работы базы в клиент-серверный.

Для редактирования свойств объектов конфигурации существует три метода. Первый из них – вызов окна редактирования объекта (двойным кликом мыши).

Удобен для объектов с большим количеством свойств. Окно редактирования объекта «Документ1» представлено на рисунке.

Окно редактирования объекта

Данный метод существует не для всех объектов. Например, исключением являются константы.

Следующий метод редактирования свойств объектов – с помощью палитры свойств, которая есть у всех объектов (и у простых, и у сложных). Соответственно, ее можно вызвать для любого объекта.

Вызов осуществляется через контекстное меню, пункт Свойства объекта (комбинация клавиш Alt+Enter).

В палитре все свойства представлены в виде списка. Можно выбирать соответствующие свойства и редактировать.

Метод удобен для объектов с небольшим количеством свойств, но может быть применен для любого объекта.

Палитра свойств объектов

У палитры свойств есть режим закрепления (т.е. окно можно либо закрепить, либо сделать его прячущимся).

Свойства могут группироваться либо по категориям (как на рисунке), либо быть упорядоченными по алфавиту (удобно, когда точно известно название свойства, но не известна его категория). Группировки свойств можно сворачивать и разворачивать.

Возможно отображение только важных свойств. Переход в данный режим осуществляется нажатием на кнопку в виде воронки.

Если Вы не можете найти какое-то свойство, то, скорее всего, у Вас нажата данная кнопка.

Для каждого свойства существует описание (отображается внизу окна). Описание может быть скопировано в буфер и использовано для поиска по справке.

Описание свойства

Возможно расположить категории свойств на отдельных закладках. Для включения данного режима на самой палитре свойств в контекстном меню выбирается пункт Закладками. Однако чаще удобнее работать именно списком.

Расположить категории свойств на отдельных закладках

С помощью палитры свойств удобно редактировать однотипные свойства для нескольких объектов, так как при переходе от одного объекта к другому палитра свойств отображается уже для другого объекта, при этом курсор остается на том же свойстве.

Еще один метод редактирования свойств объектов при помощи окна «Дополнительно». Для открытия этого окна выбирается объект конфигурации, затем в контекстном меню выбирается пункт Дополнительно.

Окно Дополнительно

В этом окне можно проставлять различные свойства данного объекта, которые, в основном, представлены в виде различных галочек.

Удобно использовать данное окно, если нужно провести классификацию нескольких объектов, например, по подсистемам. В этом случае вызывается данное окно и при переключении по объектам присваивается вхождение в подсистемы данного объекта.

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

Настройка конфигуратора

Откроется окно с достаточно большим количеством настроек и закладок.

На закладке Запуск 1С:Предприятия можно указать, какое приложение автоматически будет использоваться при запуске из конфигуратора (тонкий клиент, толстый клиент (управляемое приложение) и т.д.).

Если установлено значение Выбирать автоматически, то система будет ориентироваться на настройки самой конфигурации.

Внимание! Данная настройка влияет только на запуск из конфигуратора.

Настройка запуска

Здесь же можно настроить использование низкой скорости соединения (т.е. использование группировки данных, передаваемых на сервер, в пакеты).

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

На закладке Запуск 1С:Предприятие есть также подзакладка Дополнительные, где с помощью галочек можно установить ряд дополнительных параметров, которые влияют на запуск приложения из конфигуратора (будут ли отображаться показатели производительности, будет ли отображаться команда Все функции и т.д.).

Запуск из конфигуратора

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

Управляемое приложение/обычное приложение

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

Настройка закладки Тексты

На закладке Модули существует ряд подзакладок. Здесь настраивается, каким образом будет отображаться текст в модулях.

Каким образом будет выполняться Проверка, Группировка и Контекстная подсказка.

Отображение текстов в модулях

На закладке Справка указывается, каким образом будет выводиться справка.

Галочками можно указать те разделы, которые интересуют.

Как выводить справку в 1С

Чтобы получить возможность редактировать (видоизменять) типовую конфигурацию, необходимо в меню Конфигурация выбрать пункт Поддержка, далее Настройка поддержки.

Редактировать типовую конфигурацию

Появится форма «Настройка поддержки». В данной форме следует нажать на кнопку Включить возможность изменения.

Возможность изменения типовой конфигурации

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

Если мы все же намерены вносить изменения, требуется нажать на кнопку Да. Появится окно «Настройка правил поддержки».

Настройка правил поддержки конфигурации

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

После этого нужно будет настроить правило поддержки для всей конфигурации в целом.

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

В появившейся форме необходимо выбрать правило Объект поставщика редактируется с сохранением поддержки и нажать на кнопку ОК.

Общее правило поддержки для всей конфигурации

Фому «Настройка поддержки следует закрыть». В результате произведенных действий у нас появится возможность добавления новых объектов. В окне конфигурации активизируется кнопка Добавить.

Кнопка Добавить

Если потребуется вносить изменения в уже существующие объекты конфигурации, то для каждого из этих объектов можно также изменить правило поддержки, как это мы сделали для всей конфигурации в целом.

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

Если в основную конфигурацию были внесены какие-либо изменения, то в заголовке окна конфигурация появится маленькая звездочка (*).

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

В этом случае конфигурация базы данных еще не обновлена, о чем будет свидетельствовать восклицательный знак в названии окна «Конфигурация ».

Восклицательный знак - конфигурация не обновлена

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

Чтобы запустить конфигурацию в пользовательском режиме можно выбрать пункт 1С:Предприятие из меню Сервис или использовать сочетание клавиш Ctrl+F5.

Запуск конфигурации в пользовательском режиме

Можно запустить конфигурацию в режиме отладки (пункт Начать отладку из меню Отладка, клавиша F5 или соответствующая кнопка командной панели).

Отличие режима отладки от запуска в пользовательском режиме в том, что возможна остановка приложения в нужные моменты времени, считывание значений переменных и т.д.

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

Если приложение запущено пользователем (не в режиме отладки), тем не менее при необходимости можно подключиться к процессу пользователя из конфигуратора и сделать отладку.

Сначала для заданного сеанса в режиме 1С:Предприятие через главное меню Сервис/Параметры нужно открыть окно «Параметры» и установить галочку Отладка в текущем режиме разрешена.

На будущее можно поставить галочку Устанавливать режим разрешения отладки при запуске.

Отладка в пользовательском режиме

После этого в конфигураторе нужно выбрать пункт Подключение из меню Отладка.

Отладка в конфигураторе

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

Отладка процессов

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

Кстати, в следующей статье мы рассмотрим специальный инструмент конфигуратора – отладчик, без знания которого разработчику практически невозможно отладить свой программный код.


PDF-версия статьи для участников группы ВКонтакте

Статья в PDF-формате

Комментарии / обсуждение (14):

Читайте также: