Как понять логику кода типовых решений или почему все так сложно?



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

Почему это произошло? Ведь по логике – всё совершенствуется, становится проще и прозрачнее.

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

Чтобы 1С корректно работала в веб-браузере (по сути – была кроссплатформенной), к программному коду предъявляются особые требования.

И именно из-за этого сейчас код типовых некоторым кажется – “ужас-ужас, руки бы им оторвать”.

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

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

В любом случае рано или поздно к Вам придет “генерал”, который скажет – “Хочу, чтобы 1С на работала на планшете, я видел – так можно…”.

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

Гораздо проще – сразу писать код, отвечающий новым стандартам.

Да…но я консультант, мне это тоже нужно знать?

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

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

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

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

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

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

  • Отказ от модальности в программном коде на примерах
  • Запуск 1С в веб-браузере – через 10 минут сможете посмотреть, как Ваша конфигурация выглядит в веб-клиенте

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

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

Рассмотрим:

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

Запуск 1С в веб-браузере может использоваться для множества задач – подключить сотрудников удаленного склада к 1С, “вооружить” мобильных сотрудников. Или классика – директор в отпуске хочет смотреть отчеты из 1С :)

Предупреждение() и Вопрос() – как избавиться от модальности

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

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

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

Казалось бы, выполняем простые действия, но делаем это правильно – проверьте, так ли Вы пишете аналогичный код?

ОткрытьФормуМодально() – уходим от модальности

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

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

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

Если Вы хотите стать “богом интерфейса” – знать, как быстро и с минимальными правками дорабатывать интерфейс типовых решений, рекомендуем записаться на курс:

Поддержка – 45 дней. Объем курса – 30 учебных часов.

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

95 комментариев к “Как понять логику кода типовых решений или почему все так сложно?

  1. Виталий сказал:

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

    • Сергей Калинкин сказал:

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

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

  2. Soptel сказал:

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

    • Сергей Калинкин сказал:

      Добрый день!
      Если речь идет про разработку собственной базы, которая будет тиражироваться, тогда эффективно выполнять разработку на основе “Библиотеки Стандартных Подсистем”. Если же речь идет о том, чтобы подсмотреть реализацию некоторых функций, тогда можно использовать любую конфигурацию Фирмы 1С.

  3. Gr. Maksim сказал:

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

    • Сергей Калинкин сказал:

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

  4. don478 сказал:

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

  5. Олег сказал:

    Здравствуйте. Смущает то, что требования “от новичка”. Много времени уделяется разжевыванию “прописных истин”? Насколько полезен будет курс программисту с 6-летним стажем активной, ежедневной разработки, подробно проходившему “профессиональную разработку” пару лет назад, но подоставшему от последних новшеств?

    • Насипов Фарит сказал:

      Я не знаю.
      “Насыщает не время проведенное в столовой, а количество съеденных беляшей”… Только вы знаете, с чем у вас могут быть сложности, где и в каком объеме нужно “докрутить”. Если устраивает как есть – курс не нужен. Если не устраивает – он ускорит процесс, просто нужно быть готовым к тому, что часть материала будет знакома, но вы покупали его ради другой части.

  6. Владимир сказал:

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

    Проблема в отсутствии четкой стратегии развития системы и единого подхода при разработке, а также в замене качественной инкапсуляции на десятки совершенно неоправданных вложенных вызовов. Более того разработчики типовых часто не соблюдают простейшие правила разработки, описанные в стандартах и методиках от самой фирмы 1С как основа для начинающих.
     
      
    В качестве отсутствия единого подхода и качественного код-ревью можно привести простейшие примеры из ERP 2 или УТ 11.
     
     
    1. Как была написана инициализация движений документов совсем недавно? Отсутствовал единый подход в методах “ИнициализироватьДанныеДокумента”. В некоторых случаях для составления сборного запроса применялся список значений, причем так, что это усложняло добавление временных таблиц в текст сборного запроса. В некоторых случаях массив, в третьих – таблица значений. Сейчас уже в большинстве случаев унифицировали под применение списка значений. Но почему с самого начала не было единого подхода? У них нет ресурсов на код-ревью и на обсуждение концепции разработки друг с другом?
     
    А тем кто сделал доработку движений в прошлых версиях и обновлял систему? каково постоянно переписывать эти доработки под творческие метания разработчиков из 1С? Ведь именно это главная причина отказа от обновлений системы и того что регл.учет ведется в более стабильных базах.
      
     
    2. Регистры расчетов с поставщиками и клиентами. Измерение “ЗаказПоставщику”, “ЗаказКлиенту”. Названия измерений не соответствуют их сути. Особенно если предприятие вообще не работает с заказами, ни одного заказа в них никогда не будет. Такие названия объектов метаданных говорят о том, что изначально разработчики даже не предполагали возможность расчетов по договорам или накладным. Потом схватились за голову и переделали, оставив имена по сути ошибочными и сбивающими с толку при разработке.
     
     
    Перечисления ВидыСостоянийНМА и СостоянияОС. Выполняют одну и ту же функцию, имеют примерно один и тот же смысл и почти одинаковые значения. Но имена не унифицированы. Такое чувство, что человеку писавшему функционал НМА было безразлично как написан функционал ОС и единой точки контроля над этими разработчиками не было. В учете ОС и НМА можно привести еще пару таких примеров, демонстрирующих отсутствие при разработке оглядки на то, что было написано раньше.
     
     
     
    3. Для хранения по сути остаточных данных используются оборотные регистры, например “ТМЦВЭксплуатации”. К чему это приводит можно увидеть в схемах компоновки отчетов.

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

    Использование оператора “Выполнить” для вызова методов, из-за чего при отладке в стеке вызовов приходится видеть строку

    <Неизвестный модуль>.<Неизвестная процедура>()

    Напомню, что в системе стандартов и методик от 1С явно прописана нежелательность подобного подхода при разработке.
     
     
    4. Везде и всюду неоправданное количество вложенных вызовов. Огромное количество методов-паразитов, содержащих одну строку кода! Об этом уже писали ниже.
      
     
    5. Что за АДЪ устроили с RLS? Насколько понимаю у разработчиков конфигурации есть какие-то специальные инструменты для редактирования запросов RLS которые они не выдают в общее пользование, оставляя программистов на местах один на один с этим ужасом. Видел как-то сообщение от представителя фирмы 1С, что многие инструменты они не выдают в общее пользование потому что тогда их пришлось бы документировать и поддерживать, а у них этот вопрос не в приоритете. Иначе говоря вопросы внедрения на предприятиях у них не в приоритете. Потому что доработка RLS это часто важная и необходимая часть внедрения.
     
     
     
    6. Разработчики платформы создали красивый, логичны и понятный инструмент – СКД. Но разработчики конфигурации превратили его в неуправляемого монстра. Из-за чего сами постоянно косячат, выпуская релизы в которых неожиданно перестают открываться отчеты или в отчетах выдаются сообщения о неустановленных обязательных параметрах.
     
    Каково смотреть в глаза пользователю, который уверен, что это программист неверно обновил релиз или что-то сломал? И хорошо еще если выдается ошибка. Ведь найти косяк разработчиков конфигурации в этих дебрях сотен вложенных вызовов крайне сложно.
     
    В итоге они сделали “универсальность” которой даже сами не в состоянии пользоваться. Потому что ее на самом деле нет. Нет инкапсуляции, которая по сути своей не позволила бы появляться таким ошибкам. Нет грамотной архитектуры, есть просто неоправданно запутанный код и вложенные вызовы ради них самих. Так некоторые франчайзи дорабатывают типовые, но ожидать такого от самих разработчиков….
       
     
      
    7. Пример когда происходит замена огромного числа вызовов СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку() на СтрШаблон(), а через несколько релизов обратная замена!!! Они хоть представляют что нужно сделать программистам на местах, чтобы это пережить эти “капризы погоды”? Вот где реальные риски доработки.
     
     
     
    Что касается темы этой публикации и избавления от модальности. Было бы замечательно если бы в качестве колбэк-функции передавалось не ее имя , а ее ссылка на метод. Например вместо

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

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

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

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

  7. yinfo сказал:

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

      • Яков сказал:

        Так ведь давно известно, что в 1С разные команды, пишущие разные функционалы пусть даже для одной конфы, совершенно не согласованы, левая рука не то что не знает, что делает правая, а соревнуется с ней за бонусы “кто первый зарелизит”. Разнобой в типовых – совершенно ожидаемый и предсказуемый.

        • Насипов Фарит сказал:

          Ну, мой комментарий – это скорее ирония :)
          Что до несогласованности – да, это неизбежно в любом проекте, где порядка сотни человек разрабатывают центральную конфигурацию, которая потом “разрезается” на отдельные типовые…
          И тут нужно все-таки быть справедливыми – разнобой-разнобоем, но все-таки все более-менее прилично :)

  8. manu сказал:

    “Учиться-учиться-учиться, как завещал великий Ленин”. Голос напомнил :)

  9. mobil1c сказал:

    Да ладно оправдываться то. :)
    Та же Java, действительно, кроссплатформенная и сервлеты, действительно, работают в любом бразузере, работающем с html, css и javascript.
    А 1с все как поделка переросток, все какие-то костыли да нестыковки.
    Пришлось перейти с браузера (firefox) на тонкий клиент потому что не работало даже элементарное, выбор даты через календарь.
    Про мобильный режим. Так давно придуманы мобильные версии сайтов. Сервер получает данные о браузере и может выдать ту страницу чья верста лучше подходит.

    • Насипов Фарит сказал:

      Это Вы сейчас кому? :)
      А то на секунду показалось, что нам нужно срочно лично перед вами оправдаться за отдел разработки 1С :))

      • mobil1c сказал:

        Ну раз комментарий размещен под данной статьей, то как бы логично, что автору статьи. :)
        А то расписали блин так будто в извращениях от 1с есть какой-то глубокий сакральный смысл :D

  10. Геннадий сказал:

    В типовых конфигурациях на УФ запрос произвольного вида динамического списка часто формируется дважды. Собственно в форме в свойствах динамического списка. Это тот запрос, который виден программисту явно. Дальше этот запрос может модифицироваться в общем модуле. Т.е. что получается. Допустим нужно изменить динамический список.(Добавить еще одно поле). Правим запрос в форме. Тестируем. Изменений нет. Что такое, почему нет изменений? Мы же только что исправили запрос. Потом доходит, что запрос формируется где-то еще. И где же? В общем модуле. Как быть? Править общий модуль? Или добавлять свой и переносить в него килотонны строк кода из типовых общих модулей? А может тупо исправить запрос в форме и отрубить вызов формирования запроса из общего модуля? Но ведь в общем модуле запрос формируется изподвыподверта, Если это то это, а если вот это – то вот это. 8) Научите, как работать с типовыми конфигурациями.

    • Сергей Калинкин сказал:

      Добрый день, Геннадий! Все же в каждом случае необходимо отдельно анализировать конкретный программный код и искать в нем так называемые “точки минимального воздействия”, чтобы “и на елочку залезть, и не ободраться”. Как правило, такие точки удается найти.
      Хотя Ваш вопрос содержит общее описание проблемы, но даже в этом случае можно что-нибудь придумать. Например, как в описанном вами случае добавить новое поле в текст запроса?
      1. В первую очередь в модуле формы я нашел бы вызов процедуры, которая изменяет текст запроса динамического списка. (Как правило, такая процедура будет размещена в событии ПриСозданииНаСервере())
      2. Далее, я бы ее бегло просмотрел код этой процедуры в поисках полей, которые добавляются в текст запроса без условий (Как правило, поле Дата, Ссылка, Код … добавляются без условий)
      3. Далее, с помощью отладчика получил бы текст сгенерированного запроса
      Например:

      ВЫБРАТЬ
          ДокументРеализацияТоваровУслуг.Ссылка,
          ДокументРеализацияТоваровУслуг.ПометкаУдаления,
          ДокументРеализацияТоваровУслуг.Дата,
          ДокументРеализацияТоваровУслуг.Номер,
          ДокументРеализацияТоваровУслуг.Проведен,
          ...)

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

      Список.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "ДокументРеализацияТоваровУслуг.Ссылка,",
                                              "ДокументРеализацияТоваровУслуг.Ссылка, ДокументРеализацияТоваровУслуг.НовоеПоле,");

      Вот один из вариантов такого «минимального воздействия»

  11. dj_serega сказал:

    С одной стороны хорошо что ничего нового не узнал :) С другой стороны ожидал чего-то интересного :)

    • Andry сказал:

      Есть еще третья сторона. Вы не один, и не только для Вас здесь публикуют материалы. Кстати, а сами можете предложить что то интересное?

      • Sorka сказал:

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

        • Andry сказал:

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

  12. михаил сказал:

    Искренне надеялся увидеть объяснение для, вот таких, функций. Которыми изобилуют нынешние типовые.
    Функция ПроверитьРазрешенныеСимволыSWIFT(СВИФТБИК) Экспорт

    Возврат ПроверитьБуквенноЦифровыеСимволы(СВИФТБИК);

    КонецФункции
    (Функцию нашел буквально за 2 минуты просто зайдя в первый попавшийся модуль).
    Причем данная функция вызывается всего в 2 х местах. Особого смысла я в ней не вижу. Но зато столько удобства при поиске “когда что-то идет не так”. Понимаю что вопрос в общем не к вам, просто наболело. Создается впечатление что программистам в компании “1с” платят за количество строк кода.

    • Сергей Калинкин сказал:

      Добрый день, Михаил!
      (указанного кода в установленных у меня типовых я не нашел, поэтому буду отталкиваться от кода, приведенного вами)

      Как правило, у всего есть объяснения, но к сожалению, догадываться приходиться самостоятельно. Я изложу свои мысли по поводу приведенного вами программного кода и постараюсь в некотором роде «оправдать» разработчиков.
      Судя по всему, функция ПроверитьБуквенноЦифровыеСимволы() является универсальной и используется во многих местах конфигурации для проверки любой строки на наличие буквенно-цифровых символов. На ее основе разработчики создали другую функцию ПроверитьРазрешенныеСимволыSWIFT(), которая применяется для проверки номера СВИФТ банка.

      Преимущества данного кода (на мой взгляд):
      • Если в перспективе усложниться алгоритм проверки СВИФТБИК, то достаточно будет скорректировать код процедуры ПроверитьРазрешенныеСимволыSWIFT(). Например, в коде процедуры можно будет отказаться от использования функции ПроверитьБуквенноЦифровыеСимволы() и можно будет реализовать новый алгоритм проверки.
      • Кроме этого, название новой функции позволяет лучше понять смысл выполняемой проверки
      Недостатки:
      • Как вы правильно отметили, увеличивается количество процедур / функций

      • михаил сказал:

        Конфигурация Б.П. 3.0.43.152
        Функция ПроверитьБуквенноЦифровыеСимволы() не является экспортной и используются в данном модули в 2 функциях которые возвращают значение данной функции(То есть функции которые вызывают эту являются не значащими обертками. Которые в свою очередь используются в паре мест в функциях по 2 строчки).
        Да недостаток в том что увеличивается количество функций.
        Как следствие ухудшается читабельность кода. А так же увеличивается количество инструкций для интерпретатора (Хотя кому это интересно).
        В моем понимании проблема “Сложности типовых” кроется не в уходе от модальности. А в попытке “Объять необъятное” и написать “универсальный код” для любой конфы. А уже от туда пошло, что мы толком не уверены не в метаданных данной конфигурации, не в релевантности полученных данных на входе функции. Но мы же помни, что “Чем более универсальный код, тем медленнее он работает”, а от себя добавлю что и читать сложнее становится.Хотя 1 плюс все таки есть, порог вхождения все выше, а как следствие студентов за конфигуратором все меньше.

        • Сергей Калинкин сказал:

          В новой версии нашел указанный Вами код. Михал, ну что я могу вам могу сказать? Я в таком же недоумении как и вы. Логически объяснить это сложно и фантазии у меня не хватает. А про студентов вы верно подметили :) .

  13. qwed сказал:

    Здравствуйте, скорректируйте мой токен на начало данного потока пожалуйста.

    • Татьяна Гужавина сказал:

      Доброго дня, Олег!
      Активация токена перенесена на 21 апреля.

      • dmitry.mazaev сказал:

        Аналогичная просьба скорректировать токен доступа на 21 апреля. Спасибо!

    • Сергей Калинкин сказал:

      Добрый день, Алексей!
      Смотря что понимать под «новым кодом». Если вы хорошо знакомы с управляемым интерфейсом, но просто не сталкивались с немодальными диалогами, то вы совершенно правы, суть «нового кода» именно в этом. Особенно «новый код» сложно разбирать в типовых базах, когда вместо одной процедуры, теперь 3-4 процедуры. Если же говорить про новизну управляемого интерфейса относительно обычного интерфейса, то здесь все немного разнообразнее.

      • Алексей сказал:

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

  14. Tyushin сказал:

    я, правда, так и не понял. Если вызвать, например, ПоказатьВопрос(ЧтоТоТам) и как-то ответить на этот вопрос, то код что ли распараллеливается? Ну то есть, выполняется и код после ПоказатьВопрос, и код, который в процедуре из ОписаниеОповещения?

    • Сергей Калинкин сказал:

      К сожалению, это не так. Например, если после открытия ПоказатьВопрос() сделать программную задержку, то соответственно она начнет свою работу сразу же после отображения вопроса, и пока она работает пользователь не сможет нажать ни на одну кнопку в диалоге, поэтому параллельности нет.
      В чем же преимущество таких диалогов? Дело в том, что модальные диалоги в веб-браузерах реализуются через всплывающие окна с которыми, как известно, возникают проблемы. Что же касается немодальных диалогов, то их реализация не требует использования всплывающих окон. Поэтому нужно понимать, что уход от модальности, фактически это «заплатка» на систему для ее корректной работы в веб-браузерах, отсутствие модальности параллельности не добавляет.
      Если говорить про параллельность, то единственный инструмент платформы, который позволяет распараллелить код всем давно известен – это фоновые задания. Кстати, которые с недавнего времени нормально работают и в файловом варианте, правда с некоторыми ограничениями.

      • Яков сказал:

        Во! Наконец-то) Сколько я копий сломал на Инфостарте, доказывая, что нет там никакой параллельности, асинхронности, и вообще сказанное в метод.материалах 1С – не особо маскируемая попытка прикрыть фиговым листочком кривоватый костыль, который авторы платформы не удосужились пока превратить в нормальное решение. Преимущества-то никакого, а хлопот больше. Исключительно потому, что платформа кривая. Ничто не мешало реализовать не-всплывающие окна, вообще не трогая уровень встроенного макроязыка, кроме, вероятно, специфики отношения к нам, разработчикам, и клиентам.

  15. Aleksey сказал:

    Руки надо отрывать за кучу переходов между клиентом и сервером при каждом чихе в программе, за выполнение мегазапросов через менеджер запросов с прыжками между разными общими модулями, за запросы на 2500-3000 строк (ЗУП 3.0 расчетный листок, у которого запрос динамически собирается в общих модулях) А это, так косметика и не самая трудная часть работы.

  16. Алексей сказал:

    Хотелось бы не согласиться с тем, что “руки хочется оторвать” только из-за невозможности использования синхронных вызовов и модальных окон, с этим все как раз понятно и нормально, в новых типовых конфигурациях на управляемых формах удручает совсем другое – очень трудно найти место правки или дополнения программного кода из-за многоуровневого запрятывания кода (инкапсуляцией это назвать язык не поворачивается), т.е. нужный фрагмент оказывается в модуле, который вызывается из одного из 10 методов некой процедуры другого модуля, которая вызывается из одного из 25 методов некой процедуры третьего, которая вызывается из …. и так далее, причем из названий методов отнюдь не всегда следует ясное понимание их назначения. Кроме того, предпринята попытка сделать алгоритмы универсальными и сплошь на СКД, чтобы исключить ковыряние в коде и делать настройки из 1С Предприятия, но на деле вникать все равно приходится, потому что нужных данных готовая СКД не предоставляет, и тогда переделка универсального кода превращается в подвиг с большими временными затратами. Если кому интересно, в ERP добавьте какое-нибудь поле в список товаров в форме подбора товаров в документы продажи (например среднюю себестоимость) или в ценник товара добавьте три разных штрих-кода трех единиц товара.

    Я думаю, что “ужас-ужас” именно из-за этого возникает. А так я ничуть не против клиент-серверного программирования с учетом необходимости запуска приложения в веб-клиентах, вот только вышеописанный “хардкор” вряд ли можно назвать оправданием этой необходимости. Опять же это лично мое мнение, и я им не претендую ни на что, просто высказался.

    • Евгений Гилев (Мастер-тренер) сказал:

      Алексей, спасибо за детальное изложение.

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

      Часть из них мы решаем в рамках курса по разработке интерфейсов (работаем с СКД, создаем с нуля универсальные механизмы, аналогичные БСП…).

    • Насипов Фарит сказал:

      Ну да, это Сергей Калинкин, автор курса. Не все тренинги Евгению записывать :)

  17. Яков сказал:

    Всё гораздо проще. В своё время 1С портировала некую хрень под названием УФ внутрь платформы и теперь её вынуждена терпеть и поддерживать. Когда вылезли траблы с модальностью, платформописатели вместо чтоб самим напрячься, сляпали некие костыли и переложили проблему на разработчиков конфиг. А теперь из кожи вон лезут, пытаясь доказать, что это всё правильно и так и должно быть.

    • Евгений Гилев (Мастер-тренер) сказал:

      Я не буду оспаривать и поддерживать Вашу позицию – останусь нейтральным.

      Скажу лишь, что разработчикам (программистам, внедренцем) с этим приходится работать. Помогаем им, как можем :)

      • Яков сказал:

        Это, увы, так. Но, возможно, жёсткая консолидированная позиция ведущих разработчиков в своё время могла бы позволить избежать ситуации “приходится работать”.

        • Насипов Фарит сказал:

          1С явно не заинтересована в том, чтобы “внешние” относительно компании разработчики консолидировались.

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

    • Владимир сказал:

      Управляемые формы в общем-то не “хрень”, любой веб-программист понимает в чём их фишка (даже без браузера, в тонком клиенте). Но отчасти с вами согласен конечно. Тут есть другая проблема: абсолютно все, кто не занимается программированием или внедрением (т.е. просто пользователи) думают, что затраты времени на разработку или правки те же, что и раньше, а то и меньше. Ещё бы, им то работать все удобнее и удобнее, а то что “под капотом” все усложняется ради их комфорта никто не задумывается. Был случай, когда начальник отдела, в прошлом имевший дело с 7.7 всерьёз был уверен, что и 8-ку он знает (ну а что, и там и там справочники, документы, формы, проводки), и сроки задач ему вполне по силам определить.

      • Алексей сказал:

        “абсолютно все, кто не занимается программированием или внедрением (т.е. просто пользователи) думают, что затраты времени на разработку или правки те же, что и раньше, а то и меньше. Ещё бы, им то работать все удобнее и удобнее, а то что «под капотом» все усложняется ради их комфорта никто не задумывается.”
        Усложняется все не ради комфорта, а ради кроссплатформенности. Которая нужна ничтожному проценту пользователей, и, что важнее, нужна фирме 1С, чтобы не быть вытесненной с рынка. Удобство же пользователей не играет особого значения, т.к. рынок в определенном сегменте давно занят конфигурациями 1С. На мой взгляд, сильно спорно, что удобнее для пользователя БП2.0 или БП 3.0.
        Поэтому сложно объяснить усложнение разработки пользователю, когда не можешь объяснить его самому себе.

        • Uglyr сказал:

          ИМХО, не столько не быть вытесненным сколько расширяться в новые сегменты. В первую очередь – в модные нынче облака. Во вторую – на буржуйский рынок. А облака без веб-клиента – полкалеки.

          • Templ сказал:

            А что других вариантов нету получить доступ к базе через браузер?
            А ведь можно еще для кросплатформености добавить мобильный клиент

        • Andry сказал:

          На самом деле это надо объяснять постановщику задач, особенно когда дают обработку отлично работающую на БП2.0 и говорят через 20 минут нужна такая же для БП3.0 :)

        • Владимир сказал:

          “Усложняется все не ради комфорта, а ради кроссплатформенности.” А можно пример? Хоть чего-нибудь что сделано для кросплатформенности. С утвеждением ниже согласен, что 1С в облака хочет + на сервисы ИТС компании подсадить. Кроссплатформенность тут пофигу, ДЕНЬГИ все решают.

      • Николай сказал:

        Смысл-то главное, но подобные моменты могут резко снизить “товарный вид” продукта. Можно, конечно, говорить “пОртфель” и “мОрковь”, смысл не меняется, но определенное представление о собеседнике будет составлено… А так называемые “граммар-наци” могут и побить за это :)
        В IT-областях принят устойчивый вариант ударения – “рефАкторинг”.

        • Евгений Гилев (Мастер-тренер) сказал:

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

          Тем не менее контент первичен, посмотрите на результаты финалистов курса – они действительно показательны.

    • Сергей Калинкин сказал:

      На мой взгляд не все так однозначно. Дело в том, что в слове фа́кто́ринг возможны 2 варианта ударения. Именно поэтому делаю ударение на второй слог. Ударение на первый слог не позволяет сделать воспитание (это шутка). В любом случае, как правильно отметил Евгений, главное здесь смысл.

      • Алексей сказал:

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

  18. Игорь Апанасенко сказал:

    Очень актуальная тема.

    А вот вопрос – возможна ли публикация базы на веб сервере, стоящем отдельно от компьютера (сервера) 1С?

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

        Каким образом? До настоящего времени это было жестким ограничением: для публикации информационной базы на web-сервере, сервер приложений 1С, и web-сервер должны физически находиться на одной машине. Разве сейчас что-то изменилось?

        • dmitry.mazaev сказал:

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

    • Сергей Калинкин сказал:

      Добрый день! Сразу же хотел бы отметить, что этот вопрос касается темы администрирования, причем в большей степени к настройке веб-сервера и операционной системы. Тема не совсем моя, но в любом случае изложу, что мне известно по этому вопросу.
      Безусловно штатный механизм публикации баз из конфигуратора работать в данном случае не будет, но это не значит, что сервер 1с и веб-сервер нельзя разнести на разные компьютеры. Потребуется ручная корректировка настроек веб-сервера и возможно, файла публикации. Также могут возникнуть проблемы с авторизацией веб-сервера при подключении к компьютеру, где установлен сервер 1С. Еще раз отмечу, что эта тема от меня достаточно далека, поэтому такие общие слова. В любом случае мне известны факты такого разнесения веб-сервера и сервера 1с, причем этот делалось еще на платформе 8.2.

      • Михаил Госьков сказал:

        Можно использовать сервис 1С:Линк для публикации базы и работы через web и тонкого клиентов, весьма удобно администратору и пользователям.

    • Михаил Госьков сказал:

      Да, если использовать 1С:Линк. В этом случае агент 1С:Линк может быть установлен на одном ПК, база 1С должна быть зарегистрирована на этом ПК как обычно в списке баз 1С, может находиться на другом ПК.

      • Andry сказал:

        50% нашенских дОцентов говорят пОртфели, а остальные портфЕли. Еще и моряки поголовно со своими рапОртами баламутят воду. :)

      • Михаил Госьков сказал:

        Некоторые даже мышей едят, но другие это не считают дурными манерами, а наоборот, ласкают и угощают молоком…
        Я благодарен Сергею за хорошие лекции.

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

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

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