INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Артёменко Максим | Директор, ведущий разработчик, архитектор 1С | ООО "Арт Порт"

«Практика создания модульных отраслевых конфигураций на БСП с общими библиотеками методов и метаданных на примере программного комплекса "Арт:Порт"»

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

0. maxpiter 142 04.04.11 09:47 Сейчас в теме

Загрузка процессора 100% в 7.7 под Windows Server 2008 при блокировке журнала транзакций.

1C 7.7 "Секретный релиз" + Windows Server 2008r2 и 1С запускается и работает, но ввиду того, что обновили BkEnd, потеряли полезнейший функционал, такой как предотвращение "загрузки процессора на 100%" при ожидании блокировки журнала.

Перейти к публикации

Комментарии
Сортировка: Древо
1. iov 364 04.04.11 09:47 Сейчас в теме
(0) А по "секретному" релизу если не трудно подкормите информацией... (а то честно говоря как то 7.7 уже не так оперативно отслеживаю.)
2. maxpiter 142 04.04.11 09:51 Сейчас в теме
iov пишет:

(0) А по "секретному" релизу если не трудно подкормите информацией... (а то честно говоря как то 7.7 уже не так оперативно отслеживаю.)


http://infostart.ru/public/82018/
3. zabaluev 368 23.05.11 00:25 Сейчас в теме
Что то не работает оптимизатор на 2003 сервере. До этого использовал vk_TerminalSleep.7z, эффект был. Решил попробовать вашу систему, пользователи закричали, что постоянно транзакции. :(
4. maxpiter 142 23.05.11 10:01 Сейчас в теме
(3) теоретически должно работать, но делалось по Windows Server 2008 + http://infostart.ru/public/82018/

ОтключитьТаймаут = 1 - сделали?
5. zabaluev 368 23.05.11 10:17 Сейчас в теме
Вот такой код вставил:

//////////////////////////////////////////


Перем vk_hook Экспорт;


//////////////////////////////////////////
Процедура ПриНачале.....

ЗагрузитьВнешнююКомпоненту("vk_Hook1C.dll");
vk_hook=СоздатьОбъект("Addin.vk_Hook1C");
vk_hook.ПерехватSQLExecDirect();
vk_hook.МаксимальныйSleep=1024;
vk_hook.ОтключитьТаймаут = 1; //по умолчанию = 0
vk_hook.ОтключитьДедлок = 0; //по умолчанию = 0
6. maxpiter 142 23.05.11 11:07 Сейчас в теме
(5)
возможно BkEnd.dll не оригинальная. Попробуйте взять оригинальную из поставки 1С переименовать ее в BkEnd0.dll, а BkEnd.dll взять из "Секретного релиза", хотя для 2003 достаточно оригинальной BkEnd
Возможно используете ODBC32.dll в связке с ODBC33.dll. Нужна ODBC32.dll оригинальная.
Установите на виртуалке или отдельной машине оригинальную 1С, добавьте туда vk_hook1C.dll и сымитируйте блокировку транзакции.
23. Ferenz 12.12.11 11:31 Сейчас в теме
(6)Скажите пожалуйста, а патченой BkEnd.dll определенно работать не будет?
24. maxpiter 142 12.12.11 11:37 Сейчас в теме
7. maxpiter 142 23.05.11 11:26 Сейчас в теме
(5) прикрепил пример базы.
8. zakiap2 13.11.11 18:54 Сейчас в теме
maxpiter, Пожалуйста выложи на альтернативный хостинг выложите, хочу посмотреть твой вариант ...
imiha; nvhelsing; Maximysis; +3 1 Ответить
9. zakiap2 16.11.11 16:10 Сейчас в теме
Народ хотел спросить кто использует ODBC33.DLL нет ли проблемы с 1с когда много блокировок идет начинается 1с у пользователей закрываться с ошибкой?
10. maxpiter 142 16.11.11 16:53 Сейчас в теме
(9) много это сколько? при 50 не закрывается.
11. zakiap2 16.11.11 16:57 Сейчас в теме
maxpiter пишет:

(9) много это сколько? при 50 не закрывается.

Ну это когда одновремено 3-5 пользователей начинаю проводит доки и тут еще масовая загрузка доков в течении сек 30, так у некоторых почему то 1с тупо закрывается и все, вот немогу понять из за чего скачал эту dll попробую место odnc33.dll
12. maxpiter 142 16.11.11 17:04 Сейчас в теме
(11) не должно, у меня пользователь висит в ожидании до посинения.
13. zakiap2 16.11.11 18:25 Сейчас в теме
maxpiter пишет:

(11) не должно, у меня пользователь висит в ожидании до посинения.


Проверил вроде работает, можно одно пожелание?
Добавить "UseBalloon=1 ; Показывать balloon tooltips (всплывающие сообщения) в трее" как в odbc33 ?
14. maxpiter 142 17.11.11 09:45 Сейчас в теме
(13) добавлений чего либо в эту dll не планируется вообще.
15. zakiap2 17.11.11 09:46 Сейчас в теме
maxpiter пишет:

(13) добавлений чего либо в эту dll не планируется вообще.

Жаль, а тогда можно получить исходники? я сам доработают ...
16. maxpiter 142 17.11.11 10:11 Сейчас в теме
(15) прикрепил исходники. Как "отмодерируют", появится.
17. zakiap2 17.11.11 10:14 Сейчас в теме
maxpiter пишет:

(15) прикрепил исходники. Как "отмодерируют", появится.

Большое спасибо!
18. mxm2 1102 28.11.11 07:39 Сейчас в теме
При работе связки SQL Server 2008 R2 x64 + 1Cpp + Solution6 + vk_hook1C = Выпадает при потытке просмотра движений из журнала документов

При начале работы системы сначала грузится 1Cpp, затем vk_hook1C.

Добавка: Разобрался работает если установить в SQL Совместимость c SQL2000(80). пока работает.
19. maxpiter 142 28.11.11 09:47 Сейчас в теме
(18) 7ка только при такой настройке SQL и работает корректно.
20. cupuyc75 09.12.11 15:13 Сейчас в теме
Попробовал сегодня эту ДЛЛ. Сыпет ошибками каждую секунду, но... нашел в инете решение.
Так что данный код...

Перем vk_hook Экспорт;

...обязателен. Пример юзать от zabaluev один-в-один.
21. maxpiter 142 09.12.11 19:20 Сейчас в теме
(20) а описание посмотреть не судьба? там синим по белому написано :)
http://infostart.ru/public/83504/
22. Ferenz 12.12.11 11:26 Сейчас в теме
(20)А что за ошибки? И какое нашел решение?
25. astars 20.12.11 23:30 Сейчас в теме
Скажите пожалуйста, есть сервер Windows 2008 SP2, SQL 2000, 1С 7.7 (27 релиз), пользователи работают терминально через RemoteApp. Cлучается произвольно, что несколько (от 1 до 4 из 30 однотипных пользователей) подключений, начинают интенсивно использовать процессор, одна сессия забирает 13% проц. времени (всего 8 процессоров) т.е. 1 процессор, при этом у пользователя никаких форм журналов, обработок или списков не открыто. Пользователь при этом никаких изменений не замечает работоспособность не нарушается. Помогает только сброс сессии. Воспроизвести данную ситуацию не удается.
Замеры производительности в отладчике ничего не показали, нагрузку даёт процесс 1cv7s.exe, монитор ресурсов Windiws тоже ничего экстремального не показывает. Использование vk_hook1C результатов не дало.
Есть предположение что данное событие происходит во время краткосрочной потери связи с сервером.
Используются внешние компоненты 1С++, FormEx, DialMail. Используется Перехватчик и ТабличноеПоле, много прямых запросов через ODBCRecordSet.
26. maxpiter 142 21.12.11 17:40 Сейчас в теме
(25) у меня иногда начинает 1С очень сильно тупить у некоторых пользователей. Просто снимаю сессию RDP и пользователь заходит снова, тормоза исчезают. Это не связано с vk_hook.
Благо такое случается раз-два в неделю и в целом не мешает процессу.
27. astars 21.12.11 21:14 Сейчас в теме
(26) у меня ежедневно появляется 2 - 4 таких подключения, а постоянно мониторить подключения нет возможности, благо пока мощности позволяют, но это неправильно. Установить бы причину.
28. maxpiter 142 21.12.11 22:03 Сейчас в теме
(27) так не связано ли это с RDP? или какими-то настройками сервера, сети, конкретной машины пользователя.
если бы SQL то у всех бы тупило
если бы 1С то скорее на похожих ситуациях вешалось бы и опять таки у всех
у меня в основном 3-4 человек с такими зависаниями есть.
Если есть подозрения на "... данное событие происходит во время краткосрочной потери связи ...", то может попробовать для начала в маршрутизаторе провода в гнездах попереставлять, или вообще особо зависающих пересадить на отдельный хаб...
ну это так, мысли вслух
29. xaker1C 22.12.11 04:56 Сейчас в теме
Не было такой проблемы 50 ком в сети все работают с 1с 7.7 и 8.2 смотри настройки сервера 2008
30. profych1 22.12.11 15:32 Сейчас в теме
Тема очень актуальна для тех, кто еще на 7.7
31. astars 27.12.11 00:19 Сейчас в теме
Всем спасибо за участие, проблема решена. Через Process Explorer выяснил что у этих процессов была подгружена ScanOpos.dll, вот она и давала такую нагрузку.
32. Масянечка 10.01.12 22:12 Сейчас в теме
Спасибо огромное! Пробую на связке Windows Server 2008 + Sql Server 2000 SP4 + секретный релиз.
33. MegaDimich 20.01.12 16:29 Сейчас в теме
Подскажите, пожалуйста, будет ли работать это решение на связке Windows Server 2003 + SQL Server 2005 + секретный релиз ?
35. maxpiter 142 20.01.12 17:51 Сейчас в теме
(33) На 2003 сервере нет необходимости устанавливать данную разработку. Эта сделана специально для 2008 сервера.
(34) Да.
34. MegaDimich 20.01.12 16:32 Сейчас в теме
При использовании секретного релиза обязательно ли установить в SQL Совместимость c SQL2000(80)?
36. mybracho 05.04.12 17:45 Сейчас в теме
(34) Так секретный релиз ведь для того и сделан, что б работать "без понижения режима совместимости"
37. maxpiter 142 18.05.12 10:03 Сейчас в теме
(36) попробуйте, потом расскажете как оно живет :)
38. mybracho 18.05.12 10:35 Сейчас в теме
(37) Попробовал. Полгода стоит. Нормально работает.

Для решения проблемы 100 процентов применил патч от ромикса
39. maxpiter 142 18.05.12 10:54 Сейчас в теме
40. mybracho 18.05.12 12:22 Сейчас в теме
41. maxpiter 142 18.05.12 13:33 Сейчас в теме
(40) тема называется "Загрузка процессора 100% в 7.7 под Windows Server 2008"
Для Server 2008 патч от ромикса не работает, почему собственно и наваял это решения.
В описании про это написано.
42. shurix 21.05.12 15:14 Сейчас в теме
Я не 1Сник, поэтому прошу о маленьком уточнении:
достаточно просто подключить эту ВК для устранения проблемы или необходимо еще переписывать что-то в БД?
43. maxpiter 142 21.05.12 15:23 Сейчас в теме
(42) достаточно подключить как написано в примере.
В приложении к публикации есть пример конфигурации.
44. shurix 21.05.12 15:33 Сейчас в теме
(43) спасибо за оперативный ответ.
45. ALCAPONA 26.05.12 18:50 Сейчас в теме
Привет, maxpiter !

Имеем Win 2008 Std R2 + SQL 2008 Ent R2 + 7.7.027 + секретный релиз (начальный BkEnd оригинальный, переименован в BkEnd0).

В каталог ИБ положил Вашу dll, в глобальник прописал

ЗагрузитьВнешнююКомпоненту(каталогИБ()+"vk_Hook1C.dll");
vk_hook=СоздатьОбъект("Addin.vk_Hook1C");
vk_hook.ПерехватSQLExecDirect();
vk_hook.МаксимальныйSleep=1024;
vk_hook.ОтключитьТаймаут = 1; //по умолчанию = 0
vk_hook.ОтключитьДедлок = 0; //по умолчанию = 0

ЗагрузитьВнешнююКомпоненту и СоздатьОбъект отрабатывает правильно, а на строке
"vk_hook.ПерехватSQLExecDirect();" 1с-ка замирает и выбрасывается с ошибкой.

После этого к сожалению пришлось закоментарить в глобальнике вызов Вашей компоненты.

Не могли бы Вы помочь мне в данной ситуации ?
46. maxpiter 142 26.05.12 22:12 Сейчас в теме
(45) попробуйте конфигурацию, приложенную в примере.
На ней как себя будет вести?
47. ALCAPONA 27.05.12 12:00 Сейчас в теме
(46)
Пример скачать сам не могу, т.к. на форуме ещё менее 20 сообщений.

Но вчера попробовал то же самое, но при понижении режима совместимости в БД до SQL 2000. В такой ситуации Ваша dll работает и справляется с блокировками как надо. Вот только остался како-то неприятный осадок, что специально ставился секретный релиз для сохранения режима SQL 2008, но всё таки его пришлось понижать ...
48. maxpiter 142 28.05.12 09:46 Сейчас в теме
(47) а если режим совместимости поставить 2005? на момент тестирования у меня SQL 2005 установлен.
49. ALCAPONA 28.05.12 11:59 Сейчас в теме
(48)
Уже запустил в созданную рабочую базу людей, пока не смогу опробовать.
50. ALCAPONA 29.05.12 14:47 Сейчас в теме
Попробовал режим совместимости 2005, та же история, вернул 2000.
51. vitn 31.05.12 02:19 Сейчас в теме
vk_hook1C.dll работает только если РЕЖИМ совместимости SQL установлен 2000, какой смысл тогда секретного релиза????????????
53. maxpiter 142 31.05.12 10:10 Сейчас в теме
(51) без "секретного релиза" 1С не запустится на 7ке и 2008 винде без изменения 1С'ных библиотек.
(52)
по идее нужно найти как называется функция перехвата для 2005 и 2008 sql.
для 2000 она называется SQLExecDirectA и SQLPrepareA.
----
хотя не факт, что получится, т.к. нужно разбирать эту самую функцию придется.

Мне сейчас искать их ну никак не получается, воюю с почтой россии и таможней :(
54. ALCAPONA 31.05.12 12:10 Сейчас в теме
(53)
Ну если у Вас получится это сделать в обозримом будущем, буду Вам очень признателен.
68. shurix 06.03.13 12:37 Сейчас в теме
(53) вы "совершенно случайно" :-) не нашли свободного времени, чтобы сделать поддержку для sql2005/sql2008 режимов?
69. maxpiter 142 22.08.13 09:55 Сейчас в теме
(68) shurix, теперь ответный вопрос к вам :) а вы разобрались с исходниками? получилось реализовать?
52. ALCAPONA 31.05.12 08:59 Сейчас в теме
Уважаемый maxpiter, может быть у Вас есть возможность переписать эту разработку для работы хотя бы в режиме совместимости SQL 2005 ?
55. shurix 02.06.12 19:33 Сейчас в теме
maxpiter, такой вот вопрос ("слегка" не по теме):
здесь на Инфостарте есть публикация "Удобная "выгонялка" пользователей из 1С без доработок кода" ( http://infostart.ru/public/14593/ ), основанная на разработке Romix'а. Она "вклинивается" в адресное пространство с целью перехвата WinAPI-функции ShellExecuteA при помощи патчинга seven.dll (заменяется с shell32.dll на hook_1c.dll). В общем, для меня весьма удобная штука была бы, если бы не одно "но"...
Беда в том, что эта "выгонялка" не работает с Секретным Релизом. Может посоветуете что, учитывая что и у вас, и в той разработке используется hook_1c.dll ?
56. maxpiter 142 02.06.12 20:03 Сейчас в теме
(55) Подменять вашу hook_1c.dll на ту которая предложена в этой публикации пробовали?
dll можно переименовать из vk_Hook1C.dll в hook_1c.dll и в конфигурации заменить на СоздатьОбъект("Addin.vk_Hook1C");
Все остальное по идее должно работать.

Или же в указанной вами публикации в hook_1c.dll внесены дополнения?
57. shurix 02.06.12 20:12 Сейчас в теме
(56) попробую воспользоваться вашим советом.
Меня слегка смущает, что при использовании этой "выгонялки" для юзверя сообщение о блокировке базы появляется до выбора пользователей из списка 1С.

Не знаю, насколько там изменена dll-ка. Она называется HOOK_1C.DLL и загружает плагины, перечисленные в файле Hook_1C.ini, из папки Plugins.

P.S. Попробовал - пишет, что в библиотеке отсутствует точка входа ShellExecuteA :-(
58. maxpiter 142 02.06.12 20:37 Сейчас в теме
(57) увы ничем помочь не могу, причины в 53
Может быть, когда-нибудь :)
Исходники у этой публикации и предложенной вами есть, осталось найти того, кто сможет их собрать :)
59. shurix 03.06.12 01:03 Сейчас в теме
(58) Выяснил в чём "затык" у той "выгонялки" - при использовании её вкупе с Секретным Релизом почему-то не появляется в трэе значок, через который можно заблокировать/разблокировать базу. Остается найти прогера, который исправит проблему (ООП и иже с ним, к сожалению, не мой профиль) или "терроризировать" самого автора-разработчика.
60. tana1257 2 12.08.12 12:14 Сейчас в теме
На данный момент очень актуальна Ваша сборка, так как процессор стал нагружаться до 100%. У нас Windows Server 2008, почему то 2,5 месяца(установили сервер 2008) все работало замечательно, установлен BkEnd пропатченный, теперь 5 дней, как все пользователи взвыли, очень сильно стал тормозить сервер. Попробую использовать вашу сборку.
62. maxpiter 142 12.08.12 12:52 Сейчас в теме
(60) интересно как у вас оно работало 2,5 месяца? Смысл "секретного релиза", как раз и заключается в том, чтобы 1С запустилась "в ОС Win Vista/7/2008 в режиме клиент-сервера (без манипуляций с файлами odbc-драйвера); "
(61) если у вас и так работает без "секретного релиза", то вам его не нужно устанавливать. Достаточно скачать vk_hook1C.dll
61. tana1257 2 12.08.12 12:37 Сейчас в теме
Извените, что-то я не поняла, у вас нагружался процессор 100% при "секретном" релизе? У нас такое стало происходить при обычной конфигурации 1С (ПУБ). Для использования вашего оптимизатора, я должна установить "секретный" релиз?
63. tana1257 2 12.08.12 12:53 Сейчас в теме
Не дописала с обычным релизом.
64. tana1257 2 12.08.12 13:01 Сейчас в теме
Суть в том, что у на работала 1С с обычным релизом, на Сервере 2005, был полнейший тормоз, 2,5 назад купили новый сервер и установили 2008(я обычный пользователь, может не так изъясняюсь) Все пользователи вздохнули,1С стала "летать". Но наша радость длилась не долго, вот уже 5 дней, как при работе даже двух пользователей процесор подскакивает под 100% и обработка стала происходить очень медленно. Если я установлю "секретный" релиз и ваш оптимизатор улучшится ли работа 1С?
65. maxpiter 142 12.08.12 13:05 Сейчас в теме
(64) то что вы описываете, после установки компоненты и релиза, должно исчезнуть.
К публикации прикреплен файл с демо базой, запустите его с вашими библиотеками, потом с теми что в поставке, сравните результат.
67. astars 05.09.12 18:03 Сейчас в теме
(64)Релиз установить нужно это проверено. Но если загрузка подскакивает до 100% при 2-активных пользователях, это что то с системой. Посмотри посты выше у меня была похожая ситуация.
66. tana1257 2 12.08.12 13:59 Сейчас в теме
Большое спасибо за такой быстрый ответ
70. Maximysis 9 25.11.13 07:10 Сейчас в теме
Автору респект!!! Вещь нужная.
Интересно а есть ли нечто подобное при записи справочников...
71. Maximysis 9 25.11.13 13:36 Сейчас в теме
ОтключитьДедлок что делает?
73. mrcastmaster 24.04.15 08:31 Сейчас в теме
Очень нужная вещь!
Но проблема появилась следующего характера кто сталкивался?
Неудачная попытка создания vk_hook=СоздатьОбъект("Addin.vk_Hook1C");
74. maxpiter 142 06.05.15 10:54 Сейчас в теме
(73) mrcastmaster,
Не загружена компонента.
Загрузку, инициализацию объекта и переменных делать в ГМ
75. mrcastmaster 14.05.15 16:13 Сейчас в теме
(74)
Спасибо за ответ.
Все прописал как и описан ов статье ушла проблема загрузки в 100% терминального сервера. НО не ушла проблема медленной работы 1С 7.7 и sql 2008 r2, все пользователи в терминале 2008 r2. Когда всех выгоняю и заходят первые люди все нормально, все работает. Но как только людей заваливается за 25-30 все начинает висеть и проведение 1 документа от 10 минут. Кто еще подскажет какие действия можно предпринять именно в данной связке(не предлагать использование sql 2000 и терминала под 2003)
База 30 Гб. Пользователей до 170.
76. maxpiter 142 19.05.15 21:29 Сейчас в теме
(75) mrcastmaster, смотреть настройки SQL
У меня SQL сервер 16 ядер, 128 гигов оперативки. БД вся в памяти умещается пока.
База 105 гигов + log 91 гиг. tempdb на RAM диске.
Работают одновременно до 75 юзеров. Самое долгое проведение 15 секунд, самое быстрое 0.19 секунды.
То что до 10 минут проводится, означает что вы используете механизмы 1С для проведения документов, что очень плохо.
Включайте отладчик и смотрите кто тупит, скорее всего ВременныйРассчет().
И переходите на прямые запросы.
77. Supportkfk 10.05.16 14:09 Сейчас в теме
Привет всем
Сильно не бейте.
Скачал dll и пример базы. Все регистрируется, ошибок не выдает. НО нифига не фильтрует.
В чем может быть проблема?
78. maxpiter 142 14.05.16 13:45 Сейчас в теме
(77) Supportkfk, сложно так сказать.
На базе примера сделайте, пожалуйста, фильтрацию документов в журнале, как вы это видите и прикрепите сюда.
79. phsin 124 08.12.16 16:04 Сейчас в теме
Спасибо за разработку.

Нашел ошибку - если в параметрах SQL базы установить Режим совместимости = 100 (MS SQL 2008)
то при открытии журнала документов возникает ошибка:
---------------------------
1С:Предприятие
---------------------------
SQL State: 42000
Native: 1018
Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около "INDEX". Если имелась в виду часть табличной подсказки, то для этого теперь необходимо использовать ключевое слово A WITH и круглые скобки. Правильный синтаксис см. в электронной документации по SQL Server.

SQL State: 42000
Native: 8180
Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось выполнить подготовку инструкций.

---------------------------
ОК
---------------------------

Если режим совместимости = 80, ошибка не возникает.
Прикрепленные файлы:
80. maxpiter 142 09.12.16 22:30 Сейчас в теме
(79) сминусовать бы :)
коммент 18 и 34 выше написаны.

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

Вакансии


Программист 1С
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день

Преподаватель 1С
Санкт-Петербург
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Удаленный бизнес-аналитик 1С
Санкт-Петербург
Временный (на проект)