Получаване на конфигурация версия 1c директно от SQL
Дежурно, нашият офис обслужва няколко организации, които използват 1c за управление и счетоводство. Известно е, че 1c постоянно пуска актуализации на своите конфигурации. Съответно актуализирането на поне 5 бази данни отнема доста време. История за това как да постигнете пълна (с изключение на изтегляне на актуализации) автоматизация на процеса с помощта на MSSQL по-долу.
Нека започнем да автоматизираме процеса от "края"
Има команден ред в 1s: и ето неговите параметри Проблемът е следният:
- При 1s актуализирането е възможно само от конкретна версия до конкретна. Това се дължи на факта, че файловете за актуализация не се доставят като пълна моментна снимка на конфигурацията. И под формата на промени от референтната версия.
- Също така в самия 1s код има предварително дефинирана обработка, която се стартира при преминаване от една версия към друга.
Вероятно се досещате какъв вид конфигурация 1s. Сега е необходимо да обясним този MS SQL. В c# написах клас:
Когато създавате клас, трябва да подадете двоични данни на MemoryStream от таблицата _config. Както можете да видите в кода, той може също да анализира 7.7 конфигурации, след като ги разопакова.
Но къде е MSSQL? Ето CLR функция, която ще получи тези данни в самия MSSQL:Имаме отделна база данни, която съхранява сървъри и бази данни. Съответно функцията е адаптирана за това.
И как да определите каква актуализация е необходима за тази конфигурация 1s? Когато инсталирате актуализация 1c, можете да използвате директорията за актуализация на сървъра. Всяка актуализация има .mft файл като този: Доставчик=1C Фирма Име=Счетоводство на предприятието Версия=2.0.25.5 Версия на приложението=8.2 .
Но тук се появява друг проблем - присъствието на потребители в базата данни. 1s не се актуализира. Ние пишемритане на потребители (vbscript)