Плюсы и минусы архитектуры 1С

02.06.14

Разработка - Механизмы платформы 1С

Статья посвящена анализу сильных и слабых сторон в 1С на текущий момент (актуально для 8.2).

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

Все что здесь написано, является исключительно моими наблюдениями и домыслами.

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

По этому я решил рассмотреть наиболее важные на мой взгляд моменты касающиеся и идеологического и технического развития 1с. Последней каплей для написания данной статьи стало столкновение меня с новой системой БСП (библиотекой стандартных подсистем) в документообороте и бух 3.0. А так же некий диспут на вечный спор про 1с и ООП (объектно-ориентированное программирование)

Тому, кто уже читал: проведен анализ, что именно реализовано за прошедший год, можно сказать, что 30% из предложений сейчас выполнены или находятся в процессе.

Всего предложений - 20

Полностью выполненых - 4 (20%)

В процессе - 2 (10%)

Не выполненых - 14 (70%)

 

Поехали:

--------------------------------------------------------------------------------------------------------------

Платформа, есть файловая версия и есть клиент серверная в различных вариантах.

файловая версия

1c предполагает

Реалии

Файловая версия поставляется "как есть", и   будет эксплуатироваться ларьками с малым количеством пользователей (в идеале   одним пользователем).

Или использоваться для обучения.

файловую базу франчи впаривают жадным компаниям, у   которых нет своего специалиста (из-за жадности) и из-за этого они покупают   именно файловую версию, даже если предполагается, что там будет работать 20   бухгалтеров. Логика руководства при этом такая: "7.7 файловая в   терминале работала? Работала и ни кто не жаловался, а новая 1с более   современная и работать должна не хуже". А после перехода начинается   нытье, что 1с полное г....о.

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

Не реализовано. На мой взгляд, необходимо запретить использовать файловую версию в многопользовательском режиме, во-первых в монопольном режиме включать RLS вряд ли кто будет, во вторых это немного повысит и безопасность и надежность базы. Данное предложение уменьшит поток нареканий по поводу "1с-это тормоз". Да и не смотрите на меня так, сначала дочитайте остальные мои предложения до конца (после разбора клиент серверного варианта SQL).

Клиент серверная версия (SQL)

1c предполагает

Реалии

База будет устанавливаться, и эксплуатироваться   опытными специалистами, причем сервер SQL - это серьезная тема (и дорогая) и   ее будет настраивать DBA администратор.

Клиент серверную SQL базу покупают 2 вида клиентов:

1. действительно большие компании где есть специалисты   по SQL и там в общем все нормально.

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

Вторая категория, устанавливающая SQL, наверно самая обширная и согласитесь, что она проблемная.

1. Для компаний до 30 пользователей покупать SQL и лицензии на него все же накладно, да и отдельный железный сервер чисто под SQL далеко не обязателен.

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

В результате мы имеем частые проблемы с настройками SQL, дополнительные траты и не очень хорошую производительность. Что конечно ухудшает мнение о продукте компании 1с.

Клиент серверная версия (postgresql)

1c предполагает

Реалии

База будет устанавливаться и эксплуатироваться   опытными специалистами желающими сэкономить на лицензиях как SQL так и   Windows.

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

Такая категория то же находится в зоне риска слегка разочароваться в 1с.

Что можно сделать для улучшения клиент серверных вариантов установки:

1. Реализовано (минисервер).  Для маленьких компаний добавить возможность использовать серверу 1с вместо SQL базу данных формата 1cd, сделать такой вариант относительно дешевым. Тем более такая возможность почти реализована в службе удаленного хранилища.

2. Не реализовано. Для консоли управления сервером добавить мастера

а. Мастер создания новой базы и регламента бекапов, обновления статистики, реиндексации

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

в. мастер проверки безопасности (проверка пароля на кластер, проверки паролей в базах)

г. мастер бекапа и восстановления средствами СУБД (непосредственно из консоли)

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

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

В результате мы получим следующие варианты основных поставок

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

2. Серверная с поддержкой только формата 1cd, предназначена для небольших фирм от 2х до 30 пользователей, простая в поддержке с автоматическим бекапом средствами сервера 1с. С ограничениями файлового формата. (ориентировочно 500$ + пользовательские лицензии)

3. Полная серверная версия с возможностью выполнять 100% действий по администрированию/настройки/бекапированию/регламентов конечной СУБД (SQL) не вникая в тонкости самой СУБД. (ориентировочно 2500$ + пользовательские лицензии)

Эти три варианта уменьшат проблемы с низкой квалификацией IT специалистов и увеличат реноме компании 1с. Так же второй вариант поможет многим компаниям сэкономить на сторонних лицензиях не прибегая к "узким" специалистам. Правда, возможно уменьшение сумм покупки (часть покупателей серверной части перескочат на второй вариант) но его можно компенсировать увеличением цены на третий вариант.

WEB интерфейс

Безусловно, web интерфейс это большой шаг вперед, но давайте посмотрим, когда он был сделан? Правильно когда управляемых форм и тонкого клиента еще не было в помине, с тех пор как сама 1с сильно шагнула вперед, этот компонент выглядит неким рудиментом. А развитие сервисов вообще делает web интерфейс не сильно нужным.

1c предполагает

Реалии

Основным назначением WEB интерфейса является   универсальность запуска с любого компьютера, без установки платформы 1с

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

Web интерфейс поддерживает весь функционал 1с, и   любая конфигурация без проблем в нем «взлетает».

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

Для сложных случаев (1с признает, что с браузером   есть «сложные случаи») есть тонкий клиент через WEB интерфейс.

Конечно, это решение лучше, чем просто web   интерфейс, но дело в том, что 1с запрещает передавать третьим лицам   (например, филиалу, или своему партнеру) любые компоненты платформы (не   смотря, что лицензии используются сервером 1с). Поэтому для конечного   пользователя необходимо покупать базовую поставку при полном отсутствии   необходимости иметь лицензию для работы. Кроме того при работе тонкого   клиента через web требуется одна версия сервера и клиента (зачем – не   понятно) и при обновлении платформы на сервере приходится обновлять клиента у   всех «партнеров»

Что можно сделать для работы с web интерфейсом:

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

Файлы логов

Как и 15 лет назад лог файл сейчас живет отдельно от базы, если раньше это особых проблем не составляло то сейчас, безусловно, проблемы есть (например, на бух 3.0 при логе в 1 гиг при попытке что-то посмотреть сервер почти «умирает»). Наиболее видимая альтернатива ведению в файле – это ведение непосредственно в базе. Попробуем сравнить эти два варианта.

Ведение в отдельном файле

Ведение в базе данных

Плюсы:

  1. Не занимает места в базе данных, ускоряются   регламенты обслуживания базы.
  2. Возможность «резать» по периодам

Плюсы:

  1. Быстрая работа, индексирование по событиям,   пользователям…
  2. Поддержка транзакций (можно событие откатить в   случае чего)
  3. Удобство бекапа, переноса и т.д. (все в базе)

Минусы:

  1. Требует отдельного бекапирования
  2. Устаревшая структура, медленная работа.
  3. Отсутствие транзакционных механизмов.
  4. Для серверной базы – не просто сделать копию базы   вместе с логом, может потеряться при изменении идентификатора базы   (пересоздание базы в кластере, или переносе на другой сервер), совсем не   очевидные пути корректного поднимания из бекапа
  5. Для серверных баз – нахождение его в каталоге   сервера (и как следствие на более медленных дисках)
  6. Бутылочное горлышко (запись в лог – однопоточная и   не может идти параллельно)

Минусы:

  1. Раздутие базы, это наверно самый серьезный минус, по   тому, как на больших базах (100гиг) если туда писать еще и лог, то это будет   вообще не подъёмная база в обслуживании.

Как мы видим, обе схемы имеют в себе серьезные минусы. Поэтому истина, где то посередине.

Что можно сделать?

Я вижу 2 варианта

  1. Не реализовано. Разделить место хранения событий между файлом и базой, например, все критические события храним в базе, а все остальное в файле. Этот вариант решит часть проблем, но не будет панацеей.
  2. Реализовано. Хранить лог в отдельной базе данных (для файловых баз в формате 1cd для клиент-серверных на сервере баз данных). Этот вариант тоже немного странный, зато снимает практически все минусы кроме отдельных усилий по администрированию этой базы

--------------------------------------------------------------------------------------------------------------

Общее увеличение сложности конфигураций и внедрение БСП.

Прикидывая количество строк кода в бух 7.7 и бух 3.0 (прикидывал я путем глобального поиска точки с запятой) я пришел к следующим значениям

бух 7.7 - примерно 200 000 строк

бух 3.0 - примерно 1 000 000 строк

То есть бухгалтерия из довольно простой и понятной для одного человека конфигурации превратилась в монстра, количество вложенных вызовов процедур зашкаливает. Увеличивается как сложность понимания, так и время выполнения кода, в результате приходится бить железом (увеличивать память, ЦП и т.д.). С увеличением размера кода сложнее искать ошибки, да и самих ошибок становится больше. Что то подправить то же проблема, по тому как обновления необходимо накатывать намного чаще (в 7.7 можно было год жить, в 3.0 максиму квартал), и не смотря на более дружественный интерфейс объединения все равно обновление не типовой - это геморрой. 1с продвигает БСП (библиотека стандартных подсистем), безусловно это шаг вперед, хотя как ни странно но для "самописок" это шаг довольно сомнительный

1c предполагает

Реалии

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

Реально самописки делают по двум причинам:

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

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

БСП решает проблемы отраслевых решений   разрабатываемых франчами.

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

БСП - ведет к блочному построению всей системы, что   упрощает понимание, и уменьшает повторяемость кода.

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

Что можно сделать:

1. Не реализовано. Кесарю - кесарево, то есть вернуть БСП более логичное назначение, а именно не пытаться в нее впихнуть конкретику ведения учета, а сделать разделение на ДВЕ системы.

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

б. Библиотеки прикладных подсистем - библиотеки реализующие конкретную бизнес логику, вот именно тут и раздолье для самописок и отраслевых решений.

Стоп!!! а что это за слово промелькнуло "переопределяемых метаданных"???

2. Не реализовано. Бинго! я веду в сторону ООП, вариант реализации:

а. для объекта "подсистемы" добавляем модуль (или несколько модулей с разными режимами НаСервере/СервереБезКонтекста), в них и размещаем БП это упростит поиск модуля по смыслу.

б. в модулях добавить строку подключаемых модулей (по аналогии с паскалем), этим можно будет в одном месте управлять перекрытием процедур модулей, да и наглядность будет выше. Пример: есть модуль подсистемы УправлениеПользователями в котором описаны 2 функции УстановитьПароль(НовыйПароль) и УстановитьПараметр(Параметр, Значение). И модуль подчиненной подсистемы УправлениеПользователямиРарус в котором переопределена функция УстановитьПароль(НовыйПароль) (например в ней добавили почтовое уведомление о смене пароля). Если в модуле формы в разделе описания подключаемых модулей будет стоять УправлениеПользователямиРарус то будет доступна функция УстановитьПароль (из модуля раруса) и УстановитьПараметр (из БП, по тому что есть иерархия).

в. по сколько формы у нас управляемые, то вполне можно сделать формы с подчинением, на пример есть форма ПКО в ней описываем общие поля, закладки и т.д. Далее вместо создания перечисления ТипыПКО и делания из него функциональной опции мы делаем на каждый тип ПКО свою форму в которую автоматом наследуется основная форма ПКО. Тем самым мы отсекам кучу ненужного кода а оставляем только код который требуется именно нашему виду документа. Согласитесь это удобно! Кстати давно пора у формы сделать 2 модуля "клиентский" и "серверный".

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

В результате получим следующий пирог

Источник

Функционал

Пример

Библиотека подсистем

Базовые объекты (расширяемые)

Подсистема «УправлениеПользователями», модуль

Функция УстановитьПароль(Пользователь, НовыйПароль)   Экспорт

КонецФункции;

Процедура УстановитьПараметрСеанса(Параметр,   Значение) Экспорт

КонецПроцедуры;

*****************************

Подсистема «ДенежныеДокументы_Базовая», документ   ПКО_Базовый – объект виртуальный, нужен для возможности использовать тип   документа и реквизитов в тексте и метаданных.

Отраслевые решения, конечные «допилы на местах»

Расширения и изменения базовых объектов

Подсистема «УправлениеПользователямиРарус»   (подчинена «УправлениеПользователями»), модуль

// добавляем почтовое уведомление при смене пароля

Функция УстановитьПароль(Пользователь, НовыйПароль)   Экспорт

Результат =   Подсистема.УправлениеПользователями.УстановитьПароль(Пользователь,   НовыйПароль);

Если Результат Тогда

ПослатьПочтовоеУведомлениеОСменеПароля(Пользователь);

КонецЕсли;

Возврат Результат;

КонецФункции;

Библиотеки прикладных подсистем

Функциональные объекты

Подсистема «ДенежныеДокументы» на основании   «ДенежныеДокументы_ Базовая»,

документ ПКО на основании «ПКО_Базовый», в нем   определяется базовый функционал документа и форм, всякие кнопки печати и   присвоение номера т. д.

Документы «ПКО_ ОплатаОтПокупателя», «ПКО_   РозничнаяВыручка», «ПКО_ ВозвратОтПоставщика» на основании «ПКО» все эти   документы содержат только дополнительные, по отношению к «ПКО», реквизиты.   Формы автоматически наследуют функционал базовый функционала форм и по этому   содержат только «новый» код.

Отраслевые решения

Расширения и изменения функциональных объектов

Подсистема «ДенежныеДокументыРарус» на основании   «ДенежныеДокументы»,

документ ПКО_ ОплатаОтПокупателя_Рарус на основании   «ПКО_ ОплатаОтПокупателя», в нем добавляется реквизит «Коментарий_Рарус» и   определяется функционал работы с ним.

Конечные «допилы на местах» под специфику конкретной   организации

Расширение и изменение функционала отраслевых и   типовых решений

Внешняя обработка РеестрПКО,

Вариант 1, модуль:

Модули Подсистема. ДенежныеДокументыРарус;

// здесь будут доступны формы «ПКО_   ОплатаОтПокупателя_Рарус», «ПКО_ РозничнаяВыручка», «ПКО_   ВозвратОтПоставщика»

Вариант 2, модуль:

Модули Подсистема. ДенежныеДокументы;

// здесь будут доступны формы «ПКО_   ОплатаОтПокупателя», «ПКО_ РозничнаяВыручка», «ПКО_ ВозвратОтПоставщика»

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

--------------------------------------------------------------------------------------------------------------

Запросы и все что с ними связано.

Отсутствие UpDate

100% запись в базу средствами 1с продиктована с одной стороны безопасностью и желанием дать возможность использовать промежуточный код 1с, а также для выполнения операций требуемых ядру 1с (расчет итогов, кеширование и т.д.). С другой стороны за это платим скоростью и масштабируемостью. Имеется в виду не запись одного регистра, а запись «транзакции». После введения «гибких» блокировок ситуация заметно улучшилась, но при том количестве дублируемых регистров 1с все равно безнадежно отстает от требований сильно нагруженных систем.

100% запись в базу средствами 1с

UpDate средствами SQL

Плюсы:

  1. Безопасность
  2. Возможность вставить произвольный код для расчета.

Плюсы:

  1. Скорость выполнения
  2. Минимальные блокировки

Минусы:

  1. Очень длительное проведение тяжелых документов.

Минусы:

  1. Отсутствие возможности вставки кода на 1с

На мой взгляд, прямой UpDate для 1с давать нельзя, с другой стороны явно нужны инструменты ускорения длительных операций записи.

Чего можно сделать:

  1. Не реализовано. Для справочников/документов/пвх/регистров необходимо реализовать оператор изменения одного реквизита по отбору (такая операция довольно часто будет использоваться, например, для изменения прав доступа или добавление нового реквизита и его заполнения). Сейчас похожая возможность есть у регистров «НаборЗаписей», но хочется иметь возможность на вход ему давать текст запроса вместо отбора. Разумеется при выполнении такого оператора должны выполняться проверки на необходимость дополнительных действий (например пере проведение), определять требуется или нет обрабатывать код реакторов 1с (модуль объекта, подписки на события) следует или по метаданным или аналогично Объект.ОбмнеДанными.Загрузка = Истина.
  2. В процессе. Разделить весь учет (и все регистры) на «оперативный» и «не оперативный» (собственно эту идею частично используют в УПП), но мне бы виделся вариант решения несколько иным (пока до конца идеи не сформировал, но думать в этом направлении нужно).

Временные таблицы или вложенные запросы

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

Временные таблицы

Вложенные запросы

Плюсы:

  1. Повторное использование результата запроса, это   самый очевидный плюс.
  2. Возможность проиндексировать результат во временной   таблице, тоже достаточно очевидный плюс.
  3. Возможность использовать результат в другом запросе.   Уже менее очевидный плюс, по тому, что результат может устареть к моменту   вызова другого запроса.
  4. Более прогнозируемый план запросов в SQL, то же   довольно сомнительный плюс, по тому что оптимизатор SQL иной раз куда умнее   студента 1с.

Плюсы:

  1. Минимальное использование дисков
  2. Читабельность кода

Минусы:

  1. Длительное время жизни и как следствие раздувание   TempDB, и возможность «устаревания» результата.
  2. Ухудшения читабельности текста запроса. Минус   сомнительный, но зачастую использование кучи ВТ делает запрос совершенно не   читабельным.
  3. Требуется дополнительные усилия для разрушения ВТ,   иначе идет нерациональное использование ресурсов, как сервера, так и клиента

Минусы:

  1. Сильная зависимость от оптимизатора SQL и его плана   запросов.

Сам стараюсь использовать ВТ только в 2х случаях: Повторное использование или необходимость индексирования результата.

Пакетные запросы

Это довольно сильное новшество 1с но, даже не смотря на это, и у него есть минусы или пожелания. Первое пожелание сделать выполнение пакетов в двух режимах последовательное/параллельное, понимаю, что при параллельном выполнении будут недоступны ВТ предыдущих пакетов, но зато за счет этого можно будет ускорить те тяжелые запросы, которые есть сейчас. Конечно, Вы скажете, что сам SQL умеет распараллеливать вычисления, но как распараллелить то, чего еще не послано сервер.

1c предполагает

Реалии

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

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

Что можно сделать:

  1. Не реализовано. Ввести в запрос и самое главное в поддержку конструктора комментарии. Что упростит разбор простыней запросов.
  2. Не реализовано. Ввести поля комментарии в получаемую при выполнении пакета структуру.

RLS

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

Плюсы RLS

Минусы RLS

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

Самым главным минусом является падение скорости   выполнения запросов и кода 1с.

 

Безусловно, система RLS не всегда понятна для   рядовых программистов и многие ее просто боятся использовать, причина простая   – вполне реально получить отчет (за который реально получить взбучку вместо   премии):

Иванов – 2р

Петров – 3р

-------------------

Итого – 1254р

 

Текущие реализации RLS в БСП – это просто монстры   вселенной, кто смотрел – тот поймет. Десятки тысяч строк шаблона …

Что либо изменить в текущей реализации – не реально,   можно только писать рядом «свое»

 

RLS частенько порождает «Объект не найден», особенно   на формах в реквизитах. Часто бизнес требует «скрыть» а вместо этого имеем «Объект   не найден».

 

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

Что можно сделать:

  1. Не реализовано. По сколько шаблоны RLS компилируются в запросы на сервере (и кэшируются), можно ввести в шаблоны поддержку вложенных шаблонов RLS (разумеется, есть опасность зацикливания). Это даст превращение текущих RLS БСП в более менее читабельный и расширяемый код строк так на 500.
  2. Рализовано. Ввести конструктор запроса для создания шаблонов RLS
  3. Не реализовано. Ввести просмотр скомпилированного запроса RLS. (с возможностью подстановки произвольных параметров)

 

--------------------------------------------------------------------------------------------------------------

Интерфейсы и все с чем работает пользователь.

Про юзабельность и интерфейсы

Стоит признать, что текущие конфигурации на управляемых формах довольно хорошо продуманы, и 90% всего, что требуется пользователю ему доступно в 3 клика. Это очень хороший показатель и учитывая тот факт, что за счет функциональных опций скрывается неиспользуемый функционал интерфейс и для пользователей выглядит довольно дружелюбным. Но как мы знаем большинство действий можно выполнить несколькими способами, и каждый пользователь работает «по своему». Например, кто-то снимает с проведения, зайдя в документ, а кто-то из списка. Кроме того существует индивидуальная настройка форм. Вроде все хорошо, но давайте пройдемся по списку.

Текущее поведение 1с

Желаемое поведение

Каждый пользователь может индивидуально под себя   настроить «меню» и формы. При определенных условиях (смене компьютера/переподключении   базы) все теряется.

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

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

В третьих хочется иметь возможность копирования   интерфейсов и самое главное всех настроек от другого пользователя. Вспоминаем   ситуацию, когда приходит новый человек и начальство говорит – «Он пришел на   замену Иванова», сейчас приходится лазить и перетаскивать кучу настроек.

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

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

Про отчеты

Новая система отчетов, продвигаемая в БСП на 100% реализована на регламентных заданиях. Давайте разберем.

1c предполагает

Реалии

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

Для «первичных» отчетов действительно пользователь   готов ждать результата, а вот для получения расшифровки из 10 строчек   ожидание в 3 секунды – это реально создает мнение, что программисты полные   идиоты и 1с г..о

Что можно сделать:

Насколько я понимаю, есть два проблемных места

  1. Не реализовано. Ожидание клиента, сейчас раз в 1 сек. проверяется как там задание, выполнилось или нет. Тут мне видится логичным реализовать новый оператор оповещения конкретной клиентской сессии из регламентного задания.
  2. Не реализовано. Очередь на сервере для запуска регламента, тут можно добавить параметр «приоритет» и например расшифровки выполнять с более высоким приоритетом, чем все остальные.

 

 

 

 

 

См. также

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4459    dsdred    53    

70

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    5277    YA_418728146    25    

63

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

11.12.2023    6396    dsdred    36    

111

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    18464    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12075    human_new    27    

74

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

28.08.2023    8802    YA_418728146    6    

141

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    6273    sebekerga    54    

94

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    15968    SeiOkami    31    

103
Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
150. Артано 760 20.06.13 08:55 Сейчас в теме
(86) rentgen100, а чем Вам не нравится двойная запись?
156. rentgen100 20.06.13 23:16 Сейчас в теме
(150) Артано,
Да нет же, в том то и дело, что некоторые вещи и так БЛИЗКИ К СОВЕРШЕНСТВУ будучи при этом достаточно ПРОСТЫМИ. В бух. учете это система двойной записи, ничего более совершенного пока не придумали…
Так вот, по-моему толи в 1с забыли про необходимость этой самой “простоты” в тиражных продуктах, которыми, в частности, является БП и УТ (на 8-е), толи им наплевать на малый бизнез.
Арчибальд; +1 Ответить
87. ssn5810 79 15.06.13 13:20 Сейчас в теме
должен быть выбор (сколько людей столько мнений) у нас его нет монополист-диктатор 1С
89. rеd80 15.06.13 15:44 Сейчас в теме
(87) ssn5810,
должен быть выбор ... у нас его нет монополист-диктатор 1С
Да сколько угодно этого выбора:
- SAP
- Oracle
- Microsoft
- Галактика
- ИНФИН
- Парус
- БЭСТ
- ИнфоБухгалтер
- Турбо Бухгалтер (он же ТБ Корпорация)
- Компас
- КомТех
- Инотек
- ИнфоСофт (продукт Флагма)
- Омега
- Контур
...
114. DoctorRoza 17.06.13 15:17 Сейчас в теме
(89) rеd80, вы забыли упомянуть самого главного конкурента ананас
:)
157. rentgen100 20.06.13 23:17 Сейчас в теме
(89) rеd80,
Про большой бизнес речь не идет, для ERP-систем простота не главное, там совсем другие задачи решаются, и там, кстати, 1с монополистом не является, у 1с лишь ~ 30 % рынка ERP-систем (и то только в России, за счет низкой стоимости и большому количества партнеров по внедрению)
В итоге программисты мучаются, да и пользователи тоже…
90. rеd80 15.06.13 15:46 Сейчас в теме
(87) ssn5810, А можешь построить свой лунапарк, с блекджеком и шлюхами ®
88. sergbsv 74 15.06.13 13:22 Сейчас в теме
Ключевой вопрос ;) а 1С это вообще хоть как то слушать будет ? а уж принимать во внимание №)))))
94. awk 741 16.06.13 01:09 Сейчас в теме
Кстати, для меня, не понятно отсутствие реализации связок:

1. Клиент - Сервер 1С (не веб) - Файловая база
2. Клиент - Сервер SQL

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

Во втором - это можно использовать для схем 1С (внутренние клиенты) - SQL - WEB(внешние клиенты) для малых компаний.
95. hogik 443 16.06.13 02:24 Сейчас в теме
(94)
"для меня, не понятно отсутствие реализации связок"(с)
Василий (awk).
Для этого понимания надо осознать суть/назначение "сервера 1С".
И окажется, что в первом случае "сервер 1С" лишнее звено.
А во втором случае получаем "семерку". :-)
Основное назначение "сервера 1С" - обеспечить необходимые средства манипуляции данными для НАШЕЙ предметной области (иерархия) с применением языка запросов реляционной модели. Т.е. "сервер 1С" - это тупой переходник. ;-) А для файловой версии не требуется этого переходника, т.к. в её интерфейсе два языка манипулирования данными - "запросный" и "навигационный".
Вот так, если говорить кратко...
96. rеd80 16.06.13 04:23 Сейчас в теме
(95) hogik,
А во втором случае получаем "семерку". :-)
Это как? 0_о
Т.е. "сервер 1С" - это тупой переходник. ;-)
Не такой уж он и тупой, пять разных СУБД поддерживает.
97. hogik 443 16.06.13 05:12 Сейчас в теме
(96)
"Это как?"(с)
В контексте поставленного вопроса от Василия и моего ответа ему - ВОТ ТАК. :-)
Попытайтесь понять этот контекст...
101. rеd80 16.06.13 21:18 Сейчас в теме
(97) hogik,
Попытайтесь понять этот контекст...
Это пытаться найти черную кошку в темной комнате. Да и оффтоп.
98. vde69 925 16.06.13 15:33 Сейчас в теме
(95) hogik,
ну сервер кроме указанных функций "трансляции" запросов выполняет еще как минимум еще несколько функции

1. Обеспечивает запрет прямого доступа к данным (базу не сольешь, в отличие от файловой)
2. выполнение регламентных и фоновых заданий (то есть нормальные средства автоматизации не привязанные к пользовательской сессии)
3. выполнение кода на сервере (без этого невозможно сделать нормальное разделение прав), увеличение быстродействия, и т.д. Ни один терминал не сможет работать с 10 клиентами 1с чем сам сервер 1с.

да связку сервер1с - база 1cd следует сделать только из-за привилегированного модуля и RLS
99. hogik 443 16.06.13 16:16 Сейчас в теме
(98)
Я специально в (95) сообщении написал: "Основное назначение...".
Т.к. "всё" остальное - это побочный продукт. ;-)
Что касается "связку сервер1с - база 1cd следует сделать"(с), то эта связка "прямым" способом не делается. Т.к. в файловой сУБД (с маленькой буквы) основной ЯМД - "навигационный". А на выходе сервера 1С - запросы. Т.е. придется делать еще один "переходник". Обратный... :-) Хотя идея встроенной СУБД в сервер 1С вполне разумная. Только, это должна быть друга СУБД - не файловый вариант 1С-а, и не чисто реляционная СУБД с единственным ЯМД "запросного" типа.

P.S.
Думаю, что про RLS - это заблуждение. Нет никаких объективных причин этому инструменту работать быстрее, если "перенести" файловую версию в "среду" сервера 1С.
Вспомните, как работали фильтры в DBF-ных системах. А RLS так и работает в файловой версии. И от перемены мест... ;-) Вот если бы использовались эффективные фильтры по индексам, то - да.
108. awk 741 17.06.13 10:10 Сейчас в теме
(95) hogik, Я лично осознаю это как "Большие компании должны платить больше". С "для файловой версии не требуется этого переходника" - не согласен. Скорее всего у 1С реализовано через переходник. Не думаю, что они не отделили "мух от котлет". Так что скорее не посчитали нужным реализовывать двухзвенную архитектуру в маркетинговых целях.
113. hogik 443 17.06.13 15:12 Сейчас в теме
(108)
"Я лично осознаю это как ..."(с)
Василий (awk).
И я это осознаю как так: http://infostart.ru/public/62137/
А меня "минусами" побили... :-( :-)
115. hogik 443 17.06.13 17:58 Сейчас в теме
(108)
Василий (awk).
А если без шуток, то нет тут никаких "маркетинговых" целей.
Еще раз. Назначение "переходника" - преобразования РМ<->ИМ.
Или, если выпендриваться в терминах, то РМ<->ОМ. :-)
Вот примерное описание задачи/проблемы: http://ru.wikipedia.org/wiki/ORM
Для файловой версии этого на требуется, т.к. она обладает ДВУМЯ языками манипулирования данными. И в ней возникают, совсем другие проблемы... :-)
117. awk 741 17.06.13 18:20 Сейчас в теме
(115) hogik, Для ORM не требуется сервер. Для примера можно посмотреть ormlite/hibernate и пр.
118. hogik 443 17.06.13 18:32 Сейчас в теме
(117)
Василий (awk).
Ну, чего уж так конкретно? :-)
Написано у меня: "Вот примерное описание задачи/проблемы"©.
Разработчики 1С-а решили это делать с т.н. "сервером приложений". И сделали...
Мы же с Вами говорим о "нужен или не нужен" ТАКОЙ сервер 1С, для использования в его "среде" файловой версии 1С. Я говорю, что ЭТОТ сервер не нужен. Т.к. у него совершенно другое назначение. А Вы о чем говорите?
119. awk 741 17.06.13 18:58 Сейчас в теме
(118) hogik, Я говорю о том, что сервер это не только транслятор, но еще кое что... кэш, менеджер подключений и пр. И этот функционал для файловых баз был бы не лишенем. А так как трансляция не зависит от централизации, то двухзвенная архитектура то же могла бы быть.
120. hogik 443 17.06.13 19:34 Сейчас в теме
(119)
Василий (awk).
"сервер это не только транслятор"(с)
Данный сервер - это не транслятор. ;-)
"но еще кое что"(с)
Конечно. Согласен. Но, я это назвал "побочным продуктом". Т.к. "всё" это достигается (для файловой версии) куда более простыми средствами (ДРУГИМ сервером), чем делается в сервере 1С. Еще раз. Мы говорим не об полном отсутствии "сервера" при использовании подобия файловой версии. А об целесообразности её "внедрения" в существующий сервер. Так?
"кэш"(с)
А, вот, про кэш можно и подробнее.
В файловой версии и сервере 1С он принципиально разный.
Сервер 1С вынужден обеспечивать кэширование на "логическом" уровне записей таблиц. Т.к. минимальная единица обмена информацией с СУБД - только запись. И для РМ<->ОМ это жизненно необходимо.
Файловая версия имеет возможность кэшировать на уровнях от записей таблиц до сектора. С использованием средств кэширования ОС-а, железа, собственного страничного. И ей совершенно не требуется логика кэширование сервером 1С на уровне записи. А если учитывать, что кэширование на уровне записей работает медленнее и сложней в реализации, то и вредно.
121. vde69 925 17.06.13 19:56 Сейчас в теме
(120) hogik,
файловая версия вообще ничего кешировать не может, и сама структура (с каталогозировыми страницами) делает не возможным даже в принципе реализацию параллельной транзакции на запись к одной таблице.

если сравнивать с файловыми системами - то 1cd это fat, а SQL это FNTS

причем сравнение весьма точное :)
122. hogik 443 17.06.13 20:14 Сейчас в теме
(121)
Файловая версия - кэширует. Отсутствие параллельности транзакций в файловой версии имеет другую природу.
И оба этих понятия (кэш, транзакция) не имеет прямого отношения к нашей дискуссии с Василием. ;-)
123. vde69 925 17.06.13 20:54 Сейчас в теме
(122) hogik,

какими средствами кэшируется файловая база при работе с файлом по сети? давай подробнее что там 1с ставит без ведома админа на удаленный файловый сервер "кешенизатор базы" :) В общем случае никакого кеша нет и не предвидится...

файловая база может кэшироваться ТОЛЬКО при однопользовательском доступе, например веб сервером (что и делается), я именно и предлагаю сделать связку сервер + файловая база в том числе и для кеширования и развязки многих проблем.
124. hogik 443 17.06.13 21:25 Сейчас в теме
(123)
"предлагаю сделать связку сервер + файловая база "(с)
Видимо я очень плохо излагаю свои мысли. :-(
Разве я агитирую за использование файловой версии как она есть?
Вроде и ссылку давал на свои соображения по этому повод выше по теме.
Я всеми руками и ногами за "приближение" системы к клиент-серверному режиму любыми доступными средствами. Я, вообще, не считаю файловую версию работоспособным продуктом. Особенно, если её использовать в сетевом режиме.
Я, просто, обращаю Ваше внимание на разное назначение/возможности "сервера 1С" и некого сервера в которые предлагается "интегрировать" файловую версию. Т.е. не так это всё просто, как кажется при разглядывании системы на уровне её использования. И существующий сервер 1С не сможет "пригреть" в себе файловую версию без значительной переделки/доделки АРХИТЕКТУРЫ самого сервера и файловой версии 1С-а.
Опять про кэширование. :-)
1) Ключевая мысль из моего (120) сообщения: "В файловой версии и сервере 1С он принципиально разный."(с)
2) http://forum.infostart.ru/forum1/topic75715/message807823/#message807823
Особенно сообщение N 16... :-)
126. vde69 925 17.06.13 22:29 Сейчас в теме
(124) hogik,
Т.е. не так это всё просто, как кажется при разглядывании системы на уровне её использования. И существующий сервер 1С не сможет "пригреть" в себе файловую версию без значительной переделки/доделки АРХИТЕКТУРЫ самого сервера и файловой версии 1С-а.


уж не знаю на сколько 8.х, но 7.7 использовала odbc и дописать туда любой формат - это равнозначно реализации нового драйвера odbc (который к слову сказать в 1с УЖЕ РЕАЛИЗОВАН), про то что субд реализует какие-то там интерфейсы - так на то я скажу, что 1cd нифига не реализует, ну нету в хранилище ни строчки кода (в отличие от того-же SQL), все мытарства связанные с 1с и форматами хранения физ. данных - это проблемы с различными реализациями стандарта t-sql и особенностями индексирования ну и еще с ХП. Никаких двух языков манипулирования данными в 1с нет и никогда не было (по отношению к самой СУБД).

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


локальное кеширование средствами ОС мы не рассматриваем, по сколько мы на него не можем повлиять, есть оно или его нет 1с в это дело не вмешивается, это примерно как наличие дополнительного процессора конечно может ускорять работу, но как фактор - он не учитывается. Про чтение страниц в память - то же огорчу Вас, 1с сами данные не кешириует ни где!, даже транзакция не кешиируется а пишется в файл а процесс фиксации транкзации - это замена адресов страниц в каталогизораванных страницах. Кроме того сама запись жутко не оптимально, для записи одного булевого поля создается и записывается как минимум 2 страницы, а то и 3.
Ну а про блокировки - так там вообще песня, блокируется часть файла, причем блокируется средствами ОС, что жрет дискрипторы ОС, но самое главное не то что жрутся дискрипторы а то что при снятии блокировки происходит куча телодвижений, короче долго это идет....
129. hogik 443 17.06.13 23:40 Сейчас в теме
(126)
Оказывается всё так просто сделать. ;-)
Т.е. файловая версия плохо кэширует, плохо блокирует. Но, достаточно её подцепить через некий ODBC к некому серверу - и всё будет хорошо. А написать ODBC не составляет труда для любого приложения (сервера приложений) и любой СУБД. Главное разобраться со стандартом "t-sql"(с).
И Вас не смущает тот факт, что разработчики 1С сервера не подцепили разом все существующие СУБД к свое системе? :-)
130. vde69 925 18.06.13 08:11 Сейчас в теме
(129) hogik,

1с несколько раз меняла библиотеку построения индексов в своем формате 1cd, индексы 8.0 - не совместимы с 8.2, меняли не просто так, видимо были какие-то проблеммы, а зачем писать поддержку формата с проблеммами?

Про другие форматы - 1с цепляет их, но дело не только в форматах но и в различиях диалектов T-SQL, например скрипт MS-SQL с большой вероятностью не выполнется на сервере MY-SQL, кроме того разные серверы по разному (с точки зрения быстродействия) выполняют различные операции формата T-SQL, по этому поддержка ОПТИМИЗАЦИИ и СИНТАКСИСА конкретного провайдера - это геморой.

1с правильно сделала выбор СУБД
MS-SQL - распростроненный, надежный
ORACAL - на преспективу для мега компаний
PostgreSql - бесплатный (лично я тут наверно сильно думал в пользу поддержки MySQL)

все правильно, 3 субд на все случаи жизни, зачем заморачиватся на лишнюю поддержку?

Встраивание 1cd не увеличивает поддержку, по сколько оптимизаторы и драйвер УЖЕ ЕСТЬ В ПЛАТФОРМЕ !!!
Кроме того перевод работы с хранилищем (догадайтесь в каком формате хранилище?) непосредственно в ядро сервера 1с (1с уже давно сделало для этого отдельную службу удаленого хранилища) снимет необходимость в этой службе и добавит возможность ведения хранилища не только в формате 1cd но и SQL
145. hogik 443 18.06.13 14:52 Сейчас в теме
(130)
Думаю, Вы не так поняли моё (129) сообщение. :-)
Я в нем ёрничаю над Вашим пониманием проблемы/задачи "внедрения" файлового движка в "сервер 1С". Вы рассуждаете на уровне примитивных "кубиков" и не понимаете сути этой задачи.
Извините, за грубость...
128. awk 741 17.06.13 23:16 Сейчас в теме
(124) hogik, Я просто не так давно реализовывал связку ОМ - БД, ОМ - XML и мне тяжело представить, как делать эти связки без разделения слоем совместимости объектной модели и модели сериализации. Если 1С умудрилось написать две реализации два интерфейса, то вы конечно правы.
125. hogik 443 17.06.13 21:46 Сейчас в теме
(123)
Добавка про кэширование. ;-)
3) В локальном режиме использования (и терминал-сервер) файловой версии кэширование обеспечивается средствами ОС-а на системном (файловом) уровне. Кроме этого можно рассматривать процесс "наполнения" информации в транзакции как кэширование на уровне приложения. И еще можно считать чтение полной страницы в оперативную память для извлечения записи или элемента индексной структуры как кэширование. И еще чтение страницы или множества страниц с блокировкой позволяет организовать еще один уровень кэширования на уровне приложения. Думаю (надеюсь), что в файловой версии это делается.
И для реализации подобных алгоритмов (способов) кэширования не требуется "ставит без ведома админа на удаленный файловый сервер"(с) :-) :-) :-)
152. AlexO 135 20.06.13 18:28 Сейчас в теме
(95) hogik,
А во втором случае получаем "семерку". :-)

Никак нет.
Семерка изначально и бесповоротно работала с внешними БД - DBF, SQL. И это давало именно те преимущества, которые сделали семерку - семеркой.
И "однокусковая" файловая 1С8 здесь - это соврешенно другой продукт.
Хотя про "в этом есть зерно" согласен - но, как и остальные "зерна", 1С успешно все спустила в мусорку, поставив совсем не те приоритеты в обработке и развитии системы хранения данных, которые (соврешенно правильные с точки зрения вобще какого-либо смысла разработки подобных систем, но очень затратные с точки зрения денег) Вы, Владимир, все пытаетесь "узнать" у меня или у 1С :)
155. hogik 443 20.06.13 20:04 Сейчас в теме
(152)
... (AlexO).
"Семерка изначально и бесповоротно работала с внешними БД - DBF, SQL"(с)
Не изначально и не бесповоротно. :-)
Использование ODBC в SQL-ной версии намекает об ИХ мечтах использовать не только MS SQL. А моё разглядывание объектов (для реализации подмены движка в библиотеке DBEng32) говорит о том, что первая попытка посадить DBF-ную версию на SQL-ную состояла в "тупой" замене "навигационного" на "запросный" ЯМД. А потом был реализован самостоятельный "блок" работы с SQL, мало пригодный для использования без прямых запросов.
"И "однокусковая" файловая 1С8 здесь - это соврешенно другой продукт."(с)
Конечно - другой. Проблема одинаковые. А решение более продвинутое, чем в "семерке" - обеспечить в СУБД два ЯМД. :-) Вроде, это такая простая, очевидная вещь. Мы с Вами "сталкиваемся" по этому вопросу уже очень давно. Каких слов я не произношу для прояснения этого?
100. quick 583 16.06.13 17:01 Сейчас в теме
Насчет разочарования руководства в 1С. Тут надо не 1С исправлять, а менеджеров которые дуют этим руководителям в уши все что захочешь, лишь бы купили. Текущий вариант использовать любые базы без необходимости думать какая версия у меня установлена мне больше нравится чем то что вы предлагаете. А если у меня на одном сервере будет крутиться и файловая и скл и много еще чего? я должен еще и о версиях думать? Спасибо, не надо, пусть будет как есть.
После Oracle я заново полюбил 1С :) Особенно после того как написал модуль для клиент-банка на чистом Си, так 1С само совершенство. А насчет файловой версии - рэйд из SSD тебе в помощь.
Насчет ООП, с этим неплохо вприципе справляется объект Обработка, можно делать как методы класса так и определять методы инстанса. Но самое главное, можно делать реквизиты в других объектах с типом обработки и ссылаться на реквизиты и табличные части в этой обработке, что делает очень удобным модульное написание.
krv2k; VVi3ard; Артано; +3 Ответить
103. vde69 925 17.06.13 08:43 Сейчас в теме
(100) quick,
Текущий вариант использовать любые базы без необходимости думать какая версия у меня установлена мне больше нравится чем то что вы предлагаете. А если у меня на одном сервере будет крутиться и файловая и скл и много еще чего? я должен еще и о версиях думать? Спасибо, не надо, пусть будет как есть.


нефиг зоопарк разводить, не нужен он!

всякие "хернюшечные базы" (типа развернуть, что-бы код стырить) они пусть буду в файловом варианте НА КЛИЕНТЕ В МОНОПОЛЬНОМ варианте,

все остальное - на сервере, по моему это логично.
если боишся "вальнуть" сервер - покупаешь второй для разработки и тестирования, такая практика довольно распространненная.

Все же взрослые люди, так давайте работать по взрослому, а не как в детском саде у каждого свой горшек :)
110. quick 583 17.06.13 10:30 Сейчас в теме
Не(103) Не я все таки за свободу выбора. Сам решу где зоопарк разводить, а где порядок навести. Не всегда я могу бегать в магазин за новыми серверами.
111. vde69 925 17.06.13 13:53 Сейчас в теме
(110) quick,

отсутствие желания решить проблемму через относительно не большие финансовые затраты - это значит что проблемма несущественная.

я всегда говорю
есть возможность, что Вы потеряете 1 день работы в базе (это описание проблеммы), что-бы этого не случилось нужно потратить 200тр на новый сервер (это стоимость решения), если бизнес не готов тратить - значит я точно не буду пытатся сделать из говна конфетку (не буду строить резервную систему), а реализую ежедневный бекап и все.

Риски озвучены, сумма озвучена - решение за руководством. А то что предлагаете Вы - это не есть хорошо.

Я за то что-бы в 1с были четко сформулированы риски и стоимость исключающая эти риски. В данном случае для файловой базы риски не описаны!!!! Именно из-за отсутсвия у потребителей и исполнителей детальной информации о рисках использования файловой базы я и радею за запрет ее файлового варианта.
151. Артано 760 20.06.13 08:58 Сейчас в теме
(100) Только проблема с переопределением и наследованием, а так верно
153. VVi3ard 52 20.06.13 18:33 Сейчас в теме
(100) quick, увы объект обработка выручал в 8.1 в неуправляемом приложении, в 8.2 управляемом этот фокус уже не проходит.
Вот мне лично как раз этого и не хватает, раньше было проще.
102. rentgen100 16.06.13 22:50 Сейчас в теме
Народ, интересно однако (что-то я не пойму), реально насколько велика потребность работы пользователей через WEB (если кто-нибудь с этим сталкивался), как вы считаете?
112. karakozov 17.06.13 14:54 Сейчас в теме
Спасибо автору, было действительно интересно посмотреть обзор-сравнение архитектур.Диалог о сравнении, несомненно отразится на развитии платформы 1С.
116. MaxxiMiliSan 251 17.06.13 18:04 Сейчас в теме
есть интересные моменты, которых не знал
127. vde69 925 17.06.13 22:58 Сейчас в теме
вознаграждение в размере 227.44 $m.


интересно когда это я вознаграждение впаял???

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

если модераторы ответят - буду признателен
131. vde69 925 18.06.13 09:11 Сейчас в теме
ура, одно из моих предложений реализовано!

Тонкий клиент - бесплатен :) http://online.1c.ru/catalog/free/

как-то я это упустил... интересно когда это сделали?
132. AlexO 135 18.06.13 10:04 Сейчас в теме
(131)
Тонкий клиент - бесплатен

А раньше он был платный? И куда будет подключаться "бесплатный" "тонкий" клиент (который на самом деле - никакой не тонкий, и даже не .NET - так, попытка студентов по фотографии сделать Apple из обычного телефона) - к другому тонкому клиенту? :)
134. KapasMordorov 428 18.06.13 10:49 Сейчас в теме
(131)
Это просто признание кривости Web-клиента.
Т.к. до "бесплатности" внешние пользователи не могли пользоваться Web-интерфейсом по причине его кривости, а пользоваться тонким клинетом не могли без наличия какой-либо поставки.
135. AlexO 135 18.06.13 11:12 Сейчас в теме
(134) KapasMordorov,
а пользоваться тонким клинетом не могли без наличия какой-либо поставки.

Т.е. сейчас - могут пользоваться тонким клиентом без какой-либо поставки? :)
136. KapasMordorov 428 18.06.13 11:15 Сейчас в теме
(135)
Да, без поставки.
Достаточно наличия лицензионного ключа, который может быть на стороне сервера.
Т.е. со стороны клиента не нужна ни поставка, ни ключ.
133. AlexO 135 18.06.13 10:08 Сейчас в теме
(0) по статье - очень много радужных надежд и мечтаний.
2\3 всего этого - предлагали 1С еще по выходу 8.0, и также с горящими глазами ждали в 8.1.
А получили - невнятное СКД, вечную бета-RLS и недоУФ в 8.2.
Про никому не нужное искусственное "разделение" кода я уж и не говорю.
Вместо того, чтобы встроить это в функции платформы - сделали псевдо "управление" кодом, видимо, для повышения крайне низкого ЧСВ 1сников.
137. AlexO 135 18.06.13 12:15 Сейчас в теме
Достаточно наличия лицензионного ключа, который может быть на стороне сервера.

Тонкий клиент всегда был приблудой к серверу, и никаких денег за него дополнительно не брали.
Т.е. со стороны клиента не нужна ни поставка, ни ключ.

И раньше - не нужны были лицензии или ключи со стороны клиента. И также, как и раньше, так и сейчас - тонкий не мог работать БЕЗ ПОСТАВКИ, т.е. без сервера-платформы.
140. KapasMordorov 428 18.06.13 12:32 Сейчас в теме
(137)
Уточню 134:
а законно пользоваться тонким клинетом не могли без наличия какой-либо поставки.
141. vde69 925 18.06.13 12:34 Сейчас в теме
(137) AlexO,

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

про вознаграждение - я не знаю как оно тут приляпалось, отменить - нет кнопки.
это СЛУЧАЙНОСТЬ
143. AlexO 135 18.06.13 13:10 Сейчас в теме
(141)
и был прямой запрет на передачу нами тонкого клиента сторонним лицам для использования нашей системы.

Т.е. Вы даже не подумали, что 1С сообщила лишь о том, что запрещено использовать 1с без клиентских лицензий? Собственно, как и сейчас.
Тонкий клиент - невозможен без лицензии на сервер и клиентское лицензирование.
1С лишь оформила очевидное в слова.
144. vde69 925 18.06.13 13:33 Сейчас в теме
(143) AlexO,

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

Мы полностью описали ситуацию и получили явный запрет.
138. DoctorRoza 18.06.13 12:26 Сейчас в теме
Только мне одному интересно, но за что тут объявлено вознаграждение? :D
139. AlexO 135 18.06.13 12:28 Сейчас в теме
(138) DoctorRoza,
Вознаграждение тому, кто откроет веки 1С, и выдернет её из желтого дурмана :)
142. KapasMordorov 428 18.06.13 12:36 Сейчас в теме
(138)
Кто-то может с мобильного устройства отвечал и перепутал поле ввода, заполнив окошко вознаграждения цифрами.
146. ksu1337 18.06.13 15:16 Сейчас в теме
Замечательная статья на сегодняшний день, посвященная анализу сильных и слабых сторон в 1с
147. GlazunovAG 18.06.13 23:23 Сейчас в теме
5.XOCTEP 10.06.13 14:46
Мысли интересные, но как минимум про файловую базу улыбнуло. В чем смысл клиенту на 5 пользователей покупать сервер 1с, если можно спокойно работать в файле без всяких тормозов?

Вы пробовали работать с зарплатной конфигурацией на файловой базе при количестве сотрудников от 1000 и с информацией за 2 последних года для расчета БЛ и среднего? На файловой базе документ Отпуск считается чуть меньше 1 минуты, при том что в серверном варианте (PostgreSQL ставился на ту же самую машину для чистоты эксперимента) документ считается всего 3-5сек. Есть разница?
ShantinTD; +1 Ответить
148. GlazunovAG 18.06.13 23:50 Сейчас в теме
Статья понравилась.

Жду новой статьи (развитие этой или новая) в свете выхода платформы 8.3.3 и нового интерфейса Такси.
149. Sol 54 19.06.13 15:30 Сейчас в теме
А развитие сервисов вообще делает web интерфейс не сильно нужным.
...
Развивать сервисы 1с с прицелом полного перехода web интерфейсов именно на сервисы.


Не понял о каких "сервисах" идет речь. Можно ссылку на какой-нибудь сервис, чтобы понять что это.

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


Проснулся... выкладывают уже - http://online.1c.ru/catalog/free/

бух 7.7 - примерно 200 000 строк
бух 3.0 - примерно 1 000 000 строк


Про рег.отчетность не забыл? Она вообще-то в 7.7 шла в виде внешних файлов. Посчитай сколько там кода в "папочке" (которые плодятся каждый квартал).
158. AllexSoft 23.06.13 17:45 Сейчас в теме
Статья хорошая, будет продолжение по объектам метаданных или про конфигуратор ?
159. adhocprog 1139 30.06.13 00:04 Сейчас в теме
Спасибо! Интересная статья )
Видно, долго писал.
160. hamlet2k 03.07.13 06:28 Сейчас в теме
Спасибо за статью! Плюсанул.
Понравилось про формы: разделение кода клиент/сервер и подчинение форм - очень бы пригодилось.
Полностью согласен про БСП - надо резать!
Комментарии в запросах - +100500 очень-очень нужно!!!

Файловый режим нужно убрать совсем. Если бы за сервер 1с не нужно было бы платить дополнительные немалые деньги - ставил бы всем.

Ещё бы убрать как явление "конфигуратор" и настраивать всё из режима "предприятия"... Примерно так-же как из административного раздела CMS веб-сайты настраиваются. Такой вариант был бы особенно актуален для настройки прав доступа.
161. rosinfo1 20.08.13 18:31 Сейчас в теме
Спасибо, во многом согласен. У меня был опыт внедрения УТ 11.1 на 2 нормальных современных ноутбуках, только купленных из магазина. Соединеные напрямую сетевым кабелем. Длина кабеля 3 метра. На одном где база лежит, все летает, на втором тормоза ужасные, после каждого клика задержка 2-3 секунды. База файловая типовая. И такие тормоза почти у всех клиентов в файловом режиме, кому поставили УТ 11. Ставить терминал или СКЛ на два компьютера, ну это смешно, директора не поймут. После этого продаем только УТ 10.3 для файлового режима.
162. Evgen.Ponomarenko 567 20.08.13 22:46 Сейчас в теме
(161) rosinfo1,
Вот номер! А выяснили, что КОНКРЕТНО тормозило? 3 метра провода - это не показатель производительности, это мера длины, при текущей скорости света совершенно не объективный показатель.

Конфигуратор/Отладка/Замер производительности, что показывает? где тормоз?
163. rosinfo1 21.08.13 01:53 Сейчас в теме
Зависали, открытия всех форм списка документов и справочников, открытия форм документов. Но самое главное, жутко висела, форма подбора товара с колонками остатков по складу. А им без остатков никак нельзя, для этого программу купили, чтобы во время подбора товара видеть, что есть, а чего нет. Накладную на 100 позиций оператор забивала пару часов, постоянно висел экран. В модуль не лазил, т.к. КФГ типовая, на замке. Но на соседнем компе, где база лежит, все очень шустро. Переложили базы, все повторилось с точностью наоборот. И это не единичный случай, это просто последняя капля была. Из настроек был включен только учет серий и характеристик, остальное обрезали по максимуму. Одна организация, без учета партнеров, без учета договоров, только типовые соглашения и.т.д.
Про то, как "работает" обмен УТ 11 - БП 2.0 или 3.0, говорить не буду, это отдельная песня :-(, проще свои правила в КД написать, чем в этих логику понять. Бред-бредовский, 8 ошибок зарегистрировала тех поддержка 1с по моим письмам, всего за 2 недели внедрения обмена, после получения "оперативных" ответов (3 месяца ждал) стало лень писать туда. Проще УТ 10.3 внедрить, работает как АК 47.
164. Evgen.Ponomarenko 567 21.08.13 11:48 Сейчас в теме
(163) rosinfo1,
Понятно, полный фарш... Но вопрос был другом:тормоза - это проблема УФ или конкретно УТ11? Было бы интересно взглянуть на логи монитора производительности.
Тормозит на запросах? или на штатных 1С функциях УФ?

Были проблемы с другими конфигурациями на УФ?
165. rosinfo1 22.08.13 00:17 Сейчас в теме
При следующей встречи с заказчиком попробую поковыряться с отладчиком и замером производительности по функциям, спасибо за наводку понял где копать.
Из КФГ на управляемых формах внедрял только "Рарус Автоматизация Франчайзи" и "БП 3.0". Рарус в файловом варианте повис после 7 одновременных подключений, терминал не помогал, перевели на postgresql проблема решилась, в целом работает медленнее, чем предыдущая КФГ для франчей на 8.1, но скорость терпимая, мы привыкли.
В БП 3.0 у меня работает мало пользователей в разделенном режиме (2 чел), первичку загружают из УТ, поэтому нагрузка на базу минимальная, работает медленнее, чем БП 2.0, но скорость терпимая.
Заказчики костерят фирму 1С, на чем свет стоит, общий смысл следующий, цитирую: "нам нужно деньги зарабатывать и оперативно, а фирма 1с нам палки в колеса, в детские игрульки с формами и обновлениями играют. Только все пользователи привыкли, опять переучивать, а это все время и деньги. Да еще сервера, лицензии и СКЛ покупать. Работали на 77 и 81 горя не знали, а тут такая Ж приключилась". Щас заказчиков предупреждаем хотите УФ, готовьте деньги на СКЛ и сервер 1С, если нет вот, вам БП 2.0 и УТ 10.3 радуйтесь, пока фирма 1С их поддерживает обновляет.
166. vde69 925 22.08.13 08:01 Сейчас в теме
(165) 8.3 и "метро" значительно приятнее чем 8.2 и их "УФ", хотя конечно какие будут конфигурации - не известно :)

для себя решил писать 0 на 8.3 :) платформа хорошая :)))
167. Andreynikus 1361 22.08.13 09:39 Сейчас в теме
Вот это особенно порадовало
Более прогнозируемый план запросов в SQL, то же довольно сомнительный плюс, по тому что оптимизатор SQL иной раз куда умнее студента 1с.


Надеюсь вами написанные конфигурации никто не будет запускать на базах под 1Тб или упаси госпади к примеру на Oracle.
А мы, глупые студенты, будем делать временные таблицы.
Что-то не верится мне, что оптимизатор запросов обладает магической способностью предвидеть будущее и знать наверняка сколько строк вернется в подзапросе при соединении с ним.
169. roma03v1 25.08.13 14:28 Сейчас в теме
Статья хорошая. Идеи на мой взгляд правильные изложены.
171. KillHunter 7 05.03.14 11:49 Сейчас в теме
С точки зрения инструкции по 1с предприятию, а также стандартных конфигураций, оставляет большие вопросы, ну или желают лучшего. Что хочет клиент, то и должны реализовывать!
172. quick 583 12.05.14 17:24 Сейчас в теме
насчет веб интерфейса.. а у кого он лучше? у оракла? не смешите мои тапки, там такая жесткая привязка к IE что плакать хочется.
174. max_zhilin 29.01.15 11:12 Сейчас в теме
Не реализовано. Ввести в запрос и самое главное в поддержку конструктора комментарии. Что упростит разбор простыней запросов.


Разве в запросе запрещены комментарии? Про конструктор молчу.
175. vik2006 137 21.11.17 23:00 Сейчас в теме
Удручает дремучая безграмотность автора. Постоянно натыкаешь на всякие "по чему", "по этому", ТСЯ-ТЬСЯ, etc, и доверие к написанному сразу падает. Если автор не в состоянии выучить русский езыг, то какое доверие к его словам и всему тому, что он здесь накорябал?
GlazunovAG; +1 Ответить
176. vde69 925 29.11.17 10:00 Сейчас в теме
(175)
Если автор не в состоянии выучить русский езыг, то какое доверие к его словам
LOL
178. ArchLord42 83 29.11.17 10:50 Сейчас в теме
Не редко SQL, 1с и клиентские сессии висят на одном сервере.


Так написано, что можно подумать, что это плохо..
177. ArchLord42 83 29.11.17 10:48 Сейчас в теме
(175) т.е. если человек синтаксически грамотно напишет, что прыгать в окно с 9 этажа это супер и ничего тебе не будет, то он у тебя вызовет доверие и будешь ты его слушать?)
179. vik2006 137 29.11.17 12:26 Сейчас в теме
(177) не городи херни и не путай божий дар с яишницей. Знаешь как этот твой пост называется? Демагогией. Подменой понятий. Русский язык надо знать так, чтобы при чтении твоих опусов не возникало желание это бросить. А постоянное спотыкание об элементарное незнание правил русского языка отбивает всякую охоту читать подобные опусы.
180. ArchLord42 83 29.11.17 12:54 Сейчас в теме
(179) Фига се, тебе пожарников не вызвать?)
181. illulilana 14.12.18 17:40 Сейчас в теме
Ну, для тех, кому надо собрать сервер 1С на 30 пользователей, держите: Сервер 1С на 30 пользователей
183. TimurD 6 23.12.20 10:31 Сейчас в теме
Я тоже за ООП постоянно топлю в 1С. "Переопределяемые метаданные" или если говорить на ООП - абстрактные классы (метаданные - справочники, документы и пр.) от которых мы можем создать абстрактный или статичный (уже будет реальная таблица(ы) в БД) класс. но многие (в основном кто не разрабатывал на других ООП'ых языках) не понимают какой огромный выигрыш от наследования, инкапсуляции и полиморфизма (пусть и не самого сложного). Вот к примеру справочники "ПрисоединяемыеФайлы...". Представьте, что у нас 100 объектов и каждого свое хранилище описания файлов. В БСП что-то поменяли, все иди меняй все 100 справочников руками. При ООП даже бы не парился.
Эх... мечты.
Оставьте свое сообщение