Преобразование T-SQL запроса MSSQL в запрос 1С 8

Публикация № 139272

Разработка - Практика программирования

Одним из традиционных способов определения узких мест работы информационной базы 1с 8 под MSSQL является отлов медленных запросов профайлером. Но видя "много букоф" на языке T-SQL, не так уж и просто понять, как найти запрос 1с, который их порождает. Особенно, если дополнительно используется механизм ограничения прав на уровне записей. В данной статье предлогается один из подходов упрощающих жизнь оптимизатору с использованием обработки, конвертирующей T-SQL запрос в запрос, похожий на язык запросов 1с 8.

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

T-SQL запрос:

SELECT
MIN(CASE WHEN T2.SDBL_RLS_SIGNAL_ = 0x01 AND ISNULL(T7.SDBL_RLS_SIGNAL_,0x01) = 0x01 THEN 0x01 ELSE 0x00 END),
T1._Document367_IDRRef,
T7.Date_Time_,
T7.Number_,
T7.Fld7948RRef,
T7.Fld7949RRef,
T7.Fld7950RRef,
T7.Fld7956RRef,
T7.Fld7954_,
T7.Fld7955RRef,
CAST(T7.Fld7951_ AS NVARCHAR(300)),
T7.Fld7946_,
T7.Fld7947_,
T7.Fld7962RRef,
T7.Fld17647RRef
FROM _Document367_VT7991 T1 WITH(NOLOCK)
INNER JOIN (SELECT
CASE WHEN (EXISTS(SELECT
@P1 AS Q_002_F_000_
FROM (SELECT DISTINCT
@P1 AS SDBL_RLS_SIGNAL_,
T5._Fld16928RRef AS Q_001_F_000RRef
FROM _InfoRg16925 T5 WITH(NOLOCK)
INNER JOIN
_InfoRg16833 T6 WITH(NOLOCK)
ON ((((
T5._Fld16926 = @P2) AND (T6._Fld16834RRef = @P3)) AND (T6._Fld16835_TYPE = @P4 AND T6._Fld16835_RTRef = @P5 AND T6._Fld16835_RRRef = @P6)) AND (T6._Fld16837_TYPE = T5._Fld16927_TYPE AND T6._Fld16837_RTRef = T5._Fld16927_RTRef AND T6._Fld16837_RRRef = T5._Fld16927_RRRef))) T4
WHERE 1=1)) THEN @P1 ELSE @P7 END AS SDBL_RLS_SIGNAL_,
T3._IDRRef AS IDRRef
FROM _Document367 T3 WITH(NOLOCK)) T2
ON T1._Document367_IDRRef = T2.IDRRef
LEFT OUTER JOIN (SELECT
CASE WHEN (EXISTS(SELECT
@P1 AS Q_002_F_000_
FROM (SELECT DISTINCT
@P1 AS SDBL_RLS_SIGNAL_,
T10._Fld16928RRef AS Q_001_F_000RRef
FROM _InfoRg16925 T10 WITH(NOLOCK)
INNER JOIN
_InfoRg16833 T11 WITH(NOLOCK)
ON ((((
T10._Fld16926 = @P2) AND (T11._Fld16834RRef = @P3)) AND (T11._Fld16835_TYPE = @P4 AND T11._Fld16835_RTRef = @P5 AND T11._Fld16835_RRRef = @P6)) AND (T11._Fld16837_TYPE = T10._Fld16927_TYPE AND T11._Fld16837_RTRef = T10._Fld16927_RTRef AND T11._Fld16837_RRRef = T10._Fld16927_RRRef))) T9
WHERE 1=1)) THEN @P1 ELSE @P7 END AS SDBL_RLS_SIGNAL_,
T8._IDRRef AS IDRRef,
T8._Date_Time AS Date_Time_,
T8._Number AS Number_,
T8._Posted AS Posted_,
T8._Fld7946 AS Fld7946_,
T8._Fld7947 AS Fld7947_,
T8._Fld7948RRef AS Fld7948RRef,
T8._Fld7949RRef AS Fld7949RRef,
T8._Fld7950RRef AS Fld7950RRef,
T8._Fld7951 AS Fld7951_,
T8._Fld7954 AS Fld7954_,
T8._Fld7955RRef AS Fld7955RRef,
T8._Fld7956RRef AS Fld7956RRef,
T8._Fld7962RRef AS Fld7962RRef,
T8._Fld17647RRef AS Fld17647RRef
FROM _Document367 T8 WITH(NOLOCK)
WHERE
T8._Date_Time >= @P8 AND T8._Date_Time @P9 AND T8._Fld7948RRef = @P10 AND T8._Fld7956RRef = @P11) T7
ON T1._Document367_IDRRef = T7.IDRRef
WHERE T7.Posted_ = @P1 AND ((T7.Date_Time_ >= @P8) AND (T7.Date_Time_ @P9)) AND (T7.Fld7948RRef = @P10) AND (T7.Fld7956RRef = @P11) AND (T1._Fld7994_TYPE = @P12)
GROUP BY
T1._Document367_IDRRef,
T7.Date_Time_,
T7.Number_,
T7.Fld7948RRef,
T7.Fld7949RRef,
T7.Fld7950RRef,
T7.Fld7956RRef,
T7.Fld7954_,
T7.Fld7955RRef,
CAST(T7.Fld7951_ AS NVARCHAR(300)),
T7.Fld7946_,
T7.Fld7947_,
T7.Fld7962RRef,
T7.Fld17647RRef
ORDER BY 3, 4

Преобразованный запрос:

ВЫБРАТЬ

МИНИМУМ(ВЫБОР КОГДА T2.SDBL_RLS_SIGNAL_ = 1 И ISNULL(T7.SDBL_RLS_SIGNAL_,0x01) = 1 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ),

T1.Документ.ПлатежноеПоручениеВходящее_Ссылка,
T7.Дата_,
T7.Номер_,
T7.Организация,
T7.СчетОрганизации,
T7.Контрагент,
T7.ВидОперации,
T7.СуммаДокумента,
T7.ВалютаДокумента,
ВЫРАЗИТЬ(T7.НазначениеПлатежа КАК СТРОКА(300)),
T7.ДатаВходящегоДокумента,
T7.НомерВходящегоДокумента,
T7.Ответственный,
T7.Автор
ИЗ Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа T1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВЫБОР КОГДА (СУЩЕСТВУЕТ(ВЫБРАТЬ
@P1 КАК Q_002_F_000_
ИЗ (ВЫБРАТЬ РАЗЛИЧНЫЕ
@P1 КАК SDBL_RLS_SIGNAL_,
T5.ГруппаДоступа КАК Q_001_F_000RRef
ИЗ РегистрСведений.ТаблицыГруппДоступа T5
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа T6
ПО ((((T5.Таблица = @P2) И (T6.ВидДоступа = @P3)) И (T6.ЗначениеДоступа = @P4 И T6.ЗначениеДоступа = @P5 И T6.ЗначениеДоступа = @P6)) И (T6.ГруппаДоступа = T5.Пользователь И T6.ГруппаДоступа = T5.Пользователь И T6.ГруппаДоступа = T5.Пользователь))) T4
ГДЕ 1=1)) ТОГДА @P1 ИНАЧЕ @P7 КОНЕЦ КАК SDBL_RLS_SIGNAL_,
T3._Ссылка КАК Ссылка
ИЗ Документ.ПлатежноеПоручениеВходящее T3 ) T2
ПО T1.Документ.ПлатежноеПоручениеВходящее_Ссылка = T2.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВЫБОР КОГДА (СУЩЕСТВУЕТ(ВЫБРАТЬ
@P1 КАК Q_002_F_000_
ИЗ (ВЫБРАТЬ РАЗЛИЧНЫЕ
@P1 КАК SDBL_RLS_SIGNAL_,
T10.ГруппаДоступа КАК Q_001_F_000RRef
ИЗ РегистрСведений.ТаблицыГруппДоступа T10
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыЗначенийДоступа T11
ПО ((((T10.Таблица = @P2) И (T11.ВидДоступа = @P3)) И (T11.ЗначениеДоступа = @P4 И T11.ЗначениеДоступа = @P5 И T11.ЗначениеДоступа = @P6)) И (T11.ГруппаДоступа = T10.Пользователь И T11.ГруппаДоступа = T10.Пользователь И T11.ГруппаДоступа = T10.Пользователь))) T9
ГДЕ 1=1)) ТОГДА @P1 ИНАЧЕ @P7 КОНЕЦ КАК SDBL_RLS_SIGNAL_,
T8._Ссылка КАК Ссылка,
T8._Дата КАК Дата_,
T8._Номер КАК Номер_,
T8._Проведен КАК Проведен_,
T8.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
T8.НомерВходящегоДокумента КАК НомерВходящегоДокумента,
T8._Организация КАК Организация,
T8._СчетОрганизации КАК СчетОрганизации,
T8._Контрагент КАК Контрагент,
T8.НазначениеПлатежа КАК НазначениеПлатежа,
T8.СуммаДокумента КАК СуммаДокумента,
T8._ВалютаДокумента КАК ВалютаДокумента,
T8._ВидОперации КАК ВидОперации,
T8._Ответственный КАК Ответственный,
T8._Автор КАК Автор
ИЗ Документ.ПлатежноеПоручениеВходящее T8
ГДЕ T8._Дата >= @P8 И T8._Дата @P9 И T8._Организация = @P10 И T8._ВидОперации = @P11) T7
ПО T1.Документ.ПлатежноеПоручениеВходящее_Ссылка = T7.Ссылка
ГДЕ T7.Проведен_ = @P1 И ((T7.Дата_ >= @P8) И (T7.Дата_ @P9)) И (T7.Организация = @P10) И (T7.ВидОперации = @P11) И (T1.Сделка = @P12)
СГРУППИРОВАТЬ ПО
T1.Документ.ПлатежноеПоручениеВходящее_Ссылка,
T7.Дата_,
T7.Номер_,
T7.Организация,
T7.СчетОрганизации,
T7.Контрагент,
T7.ВидОперации,
T7.СуммаДокумента,
T7.ВалютаДокумента,
ВЫРАЗИТЬ(T7.НазначениеПлатежа КАК СТРОКА(300)),
T7.ДатаВходящегоДокумента,
T7.НомерВходящегоДокумента,
T7.Ответственный,
T7.Автор
УПОРЯДОЧИТЬ ПО 3, 4

Осталось почистить ненужную информацию и строки, касающиесь RLS.

Получаем:

ВЫБРАТЬ
МИНИМУМ(ВЫБОР КОГДА T2.SDBL_RLS_SIGNAL_ = 1 И ISNULL(T7.SDBL_RLS_SIGNAL_,0x01) = 1 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ),
T1.Документ.ПлатежноеПоручениеВходящее_Ссылка,
T7.Дата_,
T7.Номер_,
T7.Организация,
T7.СчетОрганизации,
T7.Контрагент,
T7.ВидОперации,
T7.СуммаДокумента,
T7.ВалютаДокумента,
ВЫРАЗИТЬ(T7.НазначениеПлатежа КАК СТРОКА(300)),
T7.ДатаВходящегоДокумента,
T7.НомерВходящегоДокумента,
T7.Ответственный,
T7.Автор
ИЗ Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа T1

ГДЕ T7.Проведен_ = @P1 И ((T7.Дата_ >= @P8) И (T7.Дата_ @P9)) И (T7.Организация = @P10) И (T7.ВидОперации = @P11) И (T1.Сделка = @P12)
СГРУППИРОВАТЬ ПО
T1.Документ.ПлатежноеПоручениеВходящее_Ссылка,
T7.Дата_,
T7.Номер_,
T7.Организация,
T7.СчетОрганизации,
T7.Контрагент,
T7.ВидОперации,
T7.СуммаДокумента,
T7.ВалютаДокумента,
ВЫРАЗИТЬ(T7.НазначениеПлатежа КАК СТРОКА(300)),
T7.ДатаВходящегоДокумента,
T7.НомерВходящегоДокумента,
T7.Ответственный,
T7.Автор
УПОРЯДОЧИТЬ ПО 3, 4

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

Здесь параметры вида @P1 - это выражения, соответствующие некоторым параметрам запроса 1с. Иначе говоря, вместо них будет что-то вроде &МойПараметр.

P.S. Это первая пробная версия. Так что пожелания и баг репорты приветствуются Smile

Скачать файлы

Наименование Файл Версия Размер
Обработка конвертации запроса 8.2

.epf 19,92Kb
19.07.12
222
.epf 19,92Kb 222 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. German 874 20.07.12 23:38 Сейчас в теме
Как учитываются параметры виртуальных таблиц?
Как интерпретируется DATEPART?
Что делаете с типизацией?

А вообще уже было Трассировка Ei
3,5 года назад :)
3. kilokilo 18 27.07.12 01:22 Сейчас в теме
(1) (2) Но в профайлере же мы увидим оптимизированные движком SQL запрос, а не преобразованный исходный? Или я ошибаюсь?
5. Invaa 368 27.07.12 10:06 Сейчас в теме
(3) kilokilo,

Мы увидим оптимизированный запрос движком 1С. SQL Server оптимизирует план выполнения запроса, при этом текст T-SQL запроса переданный 1Сом не меняется.
8. eligor 27.07.12 10:39 Сейчас в теме
Invaa 27.07.12 10:06
(3) kilokilo,
"SQL Server оптимизирует план выполнения запроса" - ужас люди!!!! SQL Server не оптимизирует план запроса, он ЕГО СТРОИТ!!!!
А вот то, что 1С параметризует запрос это очень хорошо, но все равно кэш запросов довольно быстро растет, потому что в 1С все равно их много.

Как вариант использовать ключи сеанса типа /clearcashe и сброса пользовательских настроек непосредственно в БД MS SQL 1С таблички Config, ConfigSave, v8users, Params и !!! Files, но это крайне осторожно, не забывая о версионности объектов и ссылок.
10. Invaa 368 06.08.12 15:27 Сейчас в теме
(8) eligor,

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

/ClearCache — очистка кэша клиент-серверных вызовов. На кеш запросов (имелась в виду статистика оптимизации в ms sql server?) этот параметр не влияет.

вот вам статья на "почитать" про оптимизацию плана выполнения запроса ms sql server:
http://www.simple-talk.com/sql/sql-training/the-sql-server-query-optimizer/

и еще интересная статья Гилева
http://www.gilev.ru/1c/81/index/optimquery.htm
11. eligor 07.08.12 09:48 Сейчас в теме
(10)
Ну хорошо, хорошо не буду спорить по поводу /ClearCache , сами надеюсь почитаете про него, он же ведь не влияет на сам MS SQL в общем, а только какой-то сброс для одного рабочего места, правильно? А по поводу оптимизации планов запросов... ну тут поспорить можно, вот я себе как-то смутно представляю при чем тут оптимизация запросов на самом SQL? Из 1С-ки формируется запрос, уже переведенный в T-SQL, для него строится план выполнения 1,2, и т.д. (строит сам MS SQL) и на основе статистики в данный момент времени сам MS SQL и выбирает какой ему лучше использовать план, либо построит новый. Но все это лишь бла бла бла, на самом деле наверное все-же лучше правильно организовать построение и хранение данных в самой 1С и по возможности избегать написание монстроидальных запросов(в 8.3 корректно поддерживается более 400 уровней вложенности запросов дерзайте), для полей(реквизитов, измерений и т.п.) связи и условий выборки лучше вводить индексы, ну и тому подобные несложные вещи. Повторюсь MS SQL не панацея! и у микросовта всегда был свой взгляд на "разработку и реализацию" любых комплексов и серверов... эх ка бы не удачная реализация офисной печати+пакет офисных програм... глядишь винда была бы и не такая популярная, не зацикливайтесь на ней
12. eligor 07.08.12 09:50 Сейчас в теме
(10)
Цитата из вашей ссылки от Гилева
Поиск длительных запросов SQL Server Profiler-ом

Последний способ для страдающих ностальгией по 90м годам, когда администраторы баз данных куда больше ценились (и это было вполне обосновано). Способ не то чтобы для извращенцев, но квалификации требует наибольшей из всех перечисленных здесь способов, а эффективность не гарантируется.
2. Invaa 368 21.07.12 13:33 Сейчас в теме
За ссылку спасибо, действительно хороший вариант.

Что касается работы с виртуальными таблицами и DATEPART, то пока это не релизовано.
Типизация у меня реализована следующим образом: синтаксис заменяется на аналог из 1С если такой имеется и просто переводится на русский, если аналогичного типа в 1С нет.
4. eligor 27.07.12 09:55 Сейчас в теме
Безусловно в данной публикации рассмотрен и приведен нетривиальный метод преобразования запросов, довольно поучительный.
Но кажется в поиске "узких мест" не обязательно выбирать путь "подземный ход на чердак".
Если вы являетесь администратором данной базы данных 1С, то достаточно опросить пользователей и выявлять подобные "узкие места" в работе базы моделированием ситуации с использованием встроенного замера производительности 1С там достаточно одного нажатия на будильник и в конфигураторе вы увидите где именно происходят задержки выполнения, это намного легче чем использование сторонних средств, да и далеко не всегда базы 1С крутятся именно на MS SQL.
Но в целом автору статьи большой респект за описание методики и модели оценочного преобразования запроса T-SQL в аналог запроса языка 1С.
6. Invaa 368 27.07.12 10:12 Сейчас в теме
(4) eligor,

замер производительности - это очень хорошая вещь, но он покажет только производительность в конкретном сеансе и в конкретной среде работы сеанса. А отловленные запросы профайлером могут указать и на сам проблемный сеанс (например, сеанс пользователя с существенно отличными от остальных пользовательскими настройками) и на проблемные условия в среде в которой работает сеанс (время дня, когда выполняется закрытие смены другими пользователями и т.п.).
7. eligor 27.07.12 10:27 Сейчас в теме
Обычно "проблемные условия в среде в которой работает сеанс (время дня, когда выполняется закрытие смены другими пользователями и т.п.)." выявляются опросом пользователей, в 99% случаев сами-же пользователи и обращаются.
И как скажите мне профайлером вообще можно оценить конкретный сеанс!???? Только источник увидеть, т.е. пользовательскую машину, а если БД на управляемых формах, либо WEB приложение!?
Профайлер вещь хорошая..., но количество запросов которые "сыпет" 1С в БД MS SQL оооочень велико, для отрисовки справочника например на 1 обновление 1С делает 2(ДВА) запроса один по колонке сортировки, другой по сортировки UIN-ов, для чтения регистров от 4 до 6 запросов), и довольно проблематично выявлять запросы с большим количеством duration's либо reads'ов вот это бы автоматизировать...
Да и повторюсь MS SQL как среда развертывания баз 1С далеко не панацея.
13. mip128 05.12.18 17:36 Сейчас в теме
(7) ты это точно трезвый написал?
14. eligor 06.12.18 01:33 Сейчас в теме
Вопрос в тему... вы спросили трезвый оценивает свои результаты по выполнению кем то другим сформулированным условиям и логики. и еще раз перечитайте тему. А так - можно ли решить вопрос - кто то ставит условия и задачи, другой их формализует, третий их ставит в очередь(в порядки формализации или плана запроса), четвертый обрабатывает ну и пусть даже возвращает результаты - вы думаете это можно сложить в одно - "ответственного" и где то там найти ответы?
9. Angeros 30.07.12 07:19 Сейчас в теме
Ни разу не приходилось прибегать к профайлеру. Все проблемы с производительностью решаются с помощью шаблонных решений оптимизации запроса. Такие как - не обращаться к данным в базе более 1ого раза. использовать индексы, иногда помогает разбивка запроса на более простые части. и т.д.
15. eligor 06.12.18 01:47 Сейчас в теме
(9) Подтверждаю. По опыту лучше 2(3,4..) запроса и внутреннея логика(обработка данных), чем один запрос, быстрее больше чем в разы. Да и вообще SQL и тп запросы не слово божье, данные можно и подправить на лету и индексы сбить... SQL-фобы - сектанты
Оставьте свое сообщение

См. также

Пакетное пробитие чеков на Онлайн-кассе при оплатах от физических лиц на расчетный счет Промо

Банковские операции Кассовые операции Обработка документов v8 v8::БУ БП3.0 Россия БУ Абонемент ($m)

Автоматизация процесса пробития чеков онлайн при поступлениях на расчетный счет от физических лиц. Помогает сократить трудозатраты таким организациям, как МФЦ, Управляющие компании и т.д. Подходит для 1С:Бухгалтерия 3.0 любой версии (базовая, ПРОФ, КОРП). Не изменяет конфигурацию. Конфигурация остается на поддержке (типовая).

2 стартмани

24.09.2019    11571    3    r.resh39    6    

Списание (корректировка) задолженности контрагентов УНФ 1.6

Закрытие периода Дебиторская и кредиторская задолженность Обработка документов Дебиторская и кредиторская задолженность v8 УНФ Украина БУ Абонемент ($m)

Обнуление задолженности контрагентов в конфигурации "Управление небольшой (нашей) фирмой" версии 1.6 с помощью документа "Корректировка регистров".

1 стартмани

24.07.2019    23219    15    DMon    1    

Вам нравятся запросы в 1С?

Практика программирования Разработка v8 v8::Запросы 1cv8.cf Абонемент ($m)

Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата... Пора с этим заканчивать!

1 стартмани

03.07.2019    21121    5    m-rv    88    

Регистрация документов с измененной суммой

Обработка документов v8 1cv8.cf Абонемент ($m)

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

1 стартмани

20.04.2019    19327    4    ryan    0    

StartManager 1.4 - Развитие альтернативного стартера Промо

Стартеры 1С v7.7 v8 Абонемент ($m)

Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.

1 стартмани

23.04.2014    127765    795    Alexoniq    1549    

Блин, мы забыли включить регламентные задания…

Сервисные утилиты v8 Абонемент ($m)

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

1 стартмани

08.04.2019    18087    15    slozhenikin_com    37    

Валовая прибыль для УПП 1.3, КА 1.1 в режиме РАУЗ (работа типового отчета без доработок конфигурации)

Обработка документов v8 КА1 УПП1 УУ Абонемент ($m)

Простое и мгновенное решение для использования типового отчета "Валовая прибыль" в конфигурациях "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1" (а также отраслевых решений на их базе) при включенном режиме РАУЗ (расширенная аналитика учета затрат). Не требует настройки или изменения конфигурации, либо может быть, для дополнительного удобства, интегрировано в нее с минимальными доработками.

2 стартмани

21.01.2019    19719    22    stvorl    11    

Легкое и гибкое управление списком доступных баз 1С у пользователей

Стартеры 1С Сервисные утилиты Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Когда в локальной сети много пользователей, а еще большое количество различных баз и при этом каждому нужны свои, то администрирование этого зоопарка превращается в АД! Этот комплекс позволяет централизованно управлять списком доступных баз в разрезе пользователей. За пару кликов можно добавить или убрать базу у всех пользователей.

7 стартмани

05.12.2018    16343    18    RomikR    9    

Правильные аналоги номенклатуры (кроссы запчастей) для 1С / Управляемые формы Промо

Обработка справочников Оптовая торговля Учет ТМЦ Оптовая торговля Учет ТМЦ v8 v8::УФ 1cv8.cf УУ Абонемент ($m)

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

5 стартмани

29.07.2015    35437    8    taurus__    22    

Многопоточная обработка данных

Производительность и оптимизация (HighLoad) Администрирование данных 1С v8 v8::УФ 1cv8.cf Абонемент ($m)

Конфигурация "Универсальные механизмы: пакеты данных". Набор инструментов для быстрой организации отказоустойчивой многопоточной обработки данных.

1 стартмани

23.11.2018    21936    65    _ASZ_    15    

Обнуление остатков регистров бухгалтерии и накопления

Универсальные обработки Чистка базы v8 v8::БУ v8::ОУ v8::УФ КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ БГУ ERP2 БП3.0 УТ11 УХ КА2 ЗУП3.x Россия Абонемент ($m)

Обработка позволяет обнулить остатки по регистру накопления или бухгалтерии на определенную дату. Поддерживается большинство типовых конфигураций (БП 3, БП 2, УТ 11, УТ 10, ЗУП 3, ЗУП 2, БГУ 2, БГУ 1, ERP, УПП, КА 2, КА 1, УХ 3, УХ 1, УНФ). Гибкая настройка (отборы, заполнение реквизитов и любых полей корр. счета, возможность обнулять ресурсы выборочно). Несколько режимов работы. Два интерфейса: простой и с расширенным набором настроек.

2 стартмани

19.11.2018    23976    311    morozov.sv    50    

Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек.

Чистка базы Сервисные утилиты Администрирование данных 1С v8 1cv8.cf Россия Абонемент ($m)

Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний. Wsf-скрипт, созданный на стандартном языке автоматизации Windows - "WSH JScript", очищает кэш 1С просто, быстро и безопасно. Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.

1 стартмани

04.11.2018    39112    402    Eugen-S    34    

Очистка регистрации обмена Промо

Чистка базы v8 v8::ОУ УТ10 Абонемент ($m)

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

1 стартмани

19.09.2017    17607    6    serg-lom89    0    

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

Обработка документов Универсальные обработки Обработка справочников v8 v8::УФ 1cv8.cf Абонемент ($m)

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

5 стартмани

15.10.2018    34558    125    json    42    

TextRadar - нечеткий поиск в тексте

Разработка внешних компонент Поиск данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.09.2018    17866    27    TSSV    18    

Работа с публикациями "Инфостарт"

Практика программирования О сообществе WEB v8 УУ Абонемент ($m)

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    22080    13    RocKeR_13    16    

Помощник по закрытию месяца для УТ 11.3 Промо

Закрытие периода Обработка документов Закрытие периода Закрытие периода v8 v8::ОУ УТ11 Россия УУ Абонемент ($m)

Помощник по закрытию месяца для УТ 11.3. Имеет две функции: обнуление товаров "К оформлению" в интеркампани и обнуление отрицательных остатков в регистре "Себестоимость товаров".

5 стартмани

10.11.2017    24215    28    Zalipaka    1    

Помощник корректировки остатков ЕГАИС в небольшом магазине. Розница 2.2

Розничная торговля Обработка документов Розничная торговля v8 Розница Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Россия УУ Абонемент ($m)

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

5 стартмани

08.09.2018    33424    83    asdfgcom    46    

Расширение резервов отпусков

Обработка документов Зарплата Зарплата v8 v8::СПР ERP2 ЗКГУ3.0 ЗУП3.x Россия БУ Абонемент ($m)

Произвольная настройка базы для расчета резервов отпусков.

2 стартмани

10.08.2018    27202    52    СергейКа    16    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    28587    26    informa1555    26    

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

Чистка базы v8 1cv8.cf Абонемент ($m)

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

10 стартмани

31.10.2016    53130    635    m..adm    217    

Работа с данными выбора

Практика программирования Работа с интерфейсом v8 Россия Абонемент ($m)

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

1 стартмани

17.07.2018    48885    17    kalyaka    16    

Очистка периодических регистров посредством T-SQL (удаление записей, кроме среза последних)

Чистка базы v8 Абонемент ($m)

Обработка для ленивых. Составит вместо Вас запрос для SQL, который удалит все не актуальные записи (т.е все, кроме среза последних)

5 стартмани

22.06.2018    16518    20    Alexander.Shvets    9    

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар")

Практика программирования v8 v8::Запросы 1cv8.cf Абонемент ($m)

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    30842    86    m-rv    57    

Прыг-Скок...или из MS EXCEL в 1С (8.2) (открытый код) Промо

Обработка документов Обработка справочников Загрузка и выгрузка в Excel v8 1cv8.cf Абонемент ($m)

Универсальная загрузка данных из Microsoft Office Excel. Автоматическая загрузка из любых по форме документов с очень удобным редактором. Почти готовый шаблон для любой конфигурации. Не требует регистрации-бесплатно.

1 стартмани

16.09.2015    64001    362    Tatitutu    48    

Автоматическое заполнение графиков в ЗУП 3.1

Зарплата Учет рабочего времени Обработка справочников Зарплата Учет рабочего времени v8 v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

Данная разработка будет актуальна для организаций с большим количеством графиков (несколько десятков/сотен).

1 стартмани

05.05.2018    24526    18    notserioussam    2    

Добавление возможности в конфигурации ЗУП 3.1 работать с фотографиями сотрудников (Зарплата и Управление Персоналом, редакция 3.1)

Обработка справочников Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::СПР ЗУП3.x БУ Абонемент ($m)

Добавление возможности в ЗУП 3.1 работать с фотографиями сотрудников (физических лиц). Расширение тестировалось на релизе ЗУП 3.1.5.129.

1 стартмани

09.04.2018    30930    74    charivnick    4    

Перемещение остатков по счету МЦ04 между материально ответственными лицами для конфигураций (8.2). Промо

Обработка документов Универсальные обработки Учет ТМЦ Учет ТМЦ v8 БП2.0 Россия БУ Абонемент ($m)

Небольшая обработка, которая позволяет перекидывать остатки по счету МЦ04 с одного материально ответственного лица на другое

1 стартмани

22.11.2012    15504    14    niksaf    4    

Заполняем по шаблону (по умолчанию)

Практика программирования v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

08.02.2018    28669    19    mvxyz    17    

Корректировка остатков ЕГАИС, возврат из регистра 2, загрузка ТТН из файлов, другое для УТ10.3

Розничная торговля Обработка документов Розничная торговля v8 v8::ОУ УТ10 Россия БУ Абонемент ($m)

Набор обработок для автоматизации работы с ЕГАИС: Обработка корректировки остатков ЕГАИС для УТ 10.3, аналогичная имеющимся в УТ 11, Рознице 2.2. Автоматически формирует документы "Передача в торговый зал", "Акт постановки на баланс в торговом зале", "Акт списания в торговом зале". Обработка возврата из регистра 2 с подбором справок Б. Обработка формирования ТТН из файлов xml.

1 стартмани

24.01.2018    35960    31    biz-intel    6    

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника. ЗУП 3.1

Обработка документов Загрузка и выгрузка в Excel Зарплата Зарплата v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Абонемент ($m)

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника по данным экономического отдела. ЗУП 3.1.

3 стартмани

20.12.2017    49594    33    mvv1975    7    

Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП

Практика программирования Универсальные печатные формы v8 БП3.0 Абонемент ($m)

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

1 стартмани

06.12.2017    27382    54    kwazi    6    

Копирование меню в Трактир Management

Обработка документов Производство готовой продукции (работ, услуг) Производство готовой продукции (работ, услуг) v8 1cv8.cf Рестораны, кафе и фаст-фуд Россия УУ Абонемент ($m)

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

1 стартмани

28.11.2017    28548    4    integrator1983    0    

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

Сервисные утилиты v8 Абонемент ($m)

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

1 стартмани

14.11.2017    22314    89    bonv    15    

Загрузка дополнительных реквизитов и сведений справочника Номенклатура из Excel и таблиц УТ 11, ERP 2

Обработка справочников Загрузка и выгрузка в Excel Учет ТМЦ Учет ТМЦ v8 v8::ОУ ERP2 УТ11 Россия УУ Абонемент ($m)

Внешняя обработка "Загрузка дополнительных реквизитов и сведений справочника Номенклатура"

1 стартмани

07.08.2017    41786    265    Windyhead    41    

Расширения конфигураций 1С: учимся перехватывать методы

Практика программирования v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

30.05.2017    132268    13    signum2009    48    

Упрощение работы с актами сверки в УТ/КА/УПП - вывод номеров счетов в документе и печатной форме

Обработка документов Печатные формы документов Дебиторская и кредиторская задолженность Дебиторская и кредиторская задолженность v8 КА1 УТ10 УПП1 БУ УУ Абонемент ($m)

Обычно акт сверки с клиентами содержат информацию о документах реализации товаров (накладных) и выполненных платежах. Но платежи делаются на основании счетов, номера которых отсутствуют в актах, что затрудняет собственно сверку. Данная обработка находит соответствующие расходным накладным счета/заказы, показывает их в форме документа и выводит в печатную форму акта.

2 стартмани

12.05.2017    30876    4    denmax    6    

Автокликер для 1С

Сервисные утилиты v8 1cv8.cf Абонемент ($m)

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

1 стартмани

03.04.2017    31614    75    slava_1c    49    

Загрузка номенклатуры по штрихкоду: Управление Торговлей 11.3; Розница 2.2; Розница для Казахстана 2.2

Обработка справочников Оптовая торговля Розничная торговля Ценообразование, анализ цен Ценообразование, прайсы Оптовая торговля Розничная торговля Ценообразование, анализ цен v8 v8::ОУ v8::УФ Розница УТ11 Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Россия УУ Абонемент ($m)

Розница 2.2, Управление Торговлей 11.3. Создание номенклатуры из интернета с помощью сканера штрихкодов либо терминала сбора данных. Варианты создания, автовыбор наилучшей позиции, источники, цены, загрузка картинки - всё это очень гибко и просто настраивается. Текущие открытые источники: barcode-list.ru(на текущий момент не работает); goodsmatrix.ru; ean13.info(может не работать капча); barcodes.olegon.ru. Автор программы не несёт ответственность за информацию, предоставляемую перечисленными выше открытыми источниками, так же не отвечает за их работоспособность. Данные источники принадлежат не автору программы. Данная программа нужна лишь для автоматизированного поиска информации на них.

10 стартмани

30.03.2017    59643    121    myALKleon    43    

DroidRAC2 - консоль администрирования кластера серверов 1С:Предприятие 8.3 под Android

Администрирование данных 1С v8 1cv8.cf Абонемент ($m)

DroidRAC2 - клиент для RAS-сервиса кластера серверов платформы 1С:Предприятие 8.3 под Android.

1 стартмани

24.02.2017    22705    10    user700211_a.straltsou    19    

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

Статистика базы данных v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

20.02.2017    18326    50    strelec13    11    

Определение ИНН Сотрудника (service.nalog.ru). ЗУП, редакция 3.1 и 2.5 (Проф и Корп)

Обработка справочников Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::СПР ЗУП2.5 Россия БУ Абонемент ($m)

Внешняя печатная форма для справочника "Сотрудники организаций". ЗУП, редакция 3.1 и 2.5 (Проф и Корп)

1 стартмани

03.02.2017    72966    49    Indgo    33