Добрый день! Захотел облегчить себе жизнь в одном рутинном задании.
Задача:
Увольняют сотрудника и нужно его во всех базах сделать недействительным. Это типовые конфигурации, где везде есть галочка недействителен, но ни разу не подключался к базе программно через COM или чем сейчас там подключаются новомодные прогеры)
Подскажите как подключаться к базе программно и заставлять отрабатывать их свой код?
Можете скинуть статью (я искал не нашёл) если знаете такую или видео.
(5) Серверные около 10, просто в кадровой сводке ещё человек так 6 и вот их всех нужно делать недействительными, легче в ТЧ обработки их выбрать и выбрать базы и усё.
Если вам известен иной метод то расскажите, я возможно о нём не знаю.
никто не запрещает,
но делайте это на домашнем компьютере
задачи бывают разные :
вместо ручного проведения нужных действий вы решили, что будете заниматься этим 15раз в день
и вам обязательно нужна автоматизация
программные действия - это допустимо в рабочей системе (!!!),
как минимум специалисту с сертификатом от 1с
он у вас имеется ?
просто есть ветки, которые явно свидетельствуют, что лучше автору (вам) отказаться от своих желаний .
Пример создания документа ОперацияБух в другой базе.
Модуль КФСерверВызов:
Процедура ВыгрузитьПереносЗаказаПроводки(ДокументСсылка) Экспорт
ОП=КФСерверПовтИсп.ИБОткрыть(Справочники.КФ_ИнформационныеБазы.БП20ОП,Истина,Истина);
Если ОП=Неопределено Тогда
Возврат;
КонецЕсли;
//...
Операция=ОП_СоздатьОперацияБух(ОП,ДокументСсылка,ЕстьНДСДолгосрочныеЗаказы);
//...
КонецПроцедуры
Функция ОП_СоздатьОперацияБух(ОП,ДокументСсылка,ЕстьНДСДолгосрочныеЗаказы=Ложь)
Организация=ОП.Справочники.Организации.НайтиПоКоду("000000003");
Запрос=ОП.NewObject("Запрос");
Запрос.Текст=
"ВЫБРАТЬ
| ОперацияБух.Ссылка
|ИЗ
| Документ.ОперацияБух КАК ОперацияБух
|ГДЕ
| ОперацияБух.Организация = &Организация
| И ОперацияБух.Дата = &Дата
| И ПОДСТРОКА(ОперацияБух.Содержание, 1, 200) = &Содержание
| И НЕ ОперацияБух.ПометкаУдаления";
Содержание=""+ДокументСсылка.СЗаказа+"->"+ДокументСсылка.НаЗаказ+", "+Формат(ДокументСсылка.ПериодЗаполнения,"ДЛФ=Д")
+", "+ДокументСсылка.ВидОперации
+?(СокрЛП(ДокументСсылка.Комментарий)="","",", ")+СокрЛП(ДокументСсылка.Комментарий)+", "+ДокументСсылка;
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.УстановитьПараметр("Дата",ДокументСсылка.Дата);
Запрос.УстановитьПараметр("Содержание",Содержание);
Результат=Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка=Результат.Выбрать();
Выборка.Следующий();
Об=Выборка.Ссылка.ПолучитьОбъект();
Об.ТаблицаРегистровНакопления.Очистить();
Иначе
Об=ОП.Документы.ОперацияБух.СоздатьДокумент();
Об.Организация=Организация;
Об.Дата=ДокументСсылка.Дата;
Об.УстановитьНовыйНомер("КИР");
Об.СпособЗаполнения="Вручную";
Об.Содержание=Содержание;
Об.Комментарий="Из БП 3.0";
Об.Ответственный=ОП.Справочники.Пользователи.НайтиПоНаименованию(ДокументСсылка.Ответственный.Наименование);
Если СокрЛП(Об.Ответственный.Наименование)="" Тогда
Об.Ответственный=ОП.Справочники.Пользователи.НайтиПоНаименованию(
ПолучитьФИОКратко(Документссылка.Ответственный.ФизическоеЛицо,Истина));
КонецЕсли;
КонецЕсли;
Если ЕстьНДСДолгосрочныеЗаказы Тогда
Регистр1=Об.ТаблицаРегистровНакопления.Вставить(0);
Регистр1.Имя="НДСДолгосрочныеЗаказы";
Регистр1.Представление="НДС по долгосрочным заказам";
КонецЕсли;
Об.ОбменДанными.Загрузка=Истина;
Об.Записать();
Возврат Об.Ссылка;
КонецФункции
Показать
Модуль КФСерверПовтИсп:
Функция ИБОткрыть(ИБ,ССообщениями=Истина,Коннектор=Истина) Экспорт
Попытка
Если Коннектор Тогда
Соединение=Новый COMОбъект("V83.COMConnector");
Иначе
Соединение=Новый COMОбъект("V83.Application");
КонецЕсли;
Srvr=ИБ.КластерСерверов;
Ref=ИБ.ИмяИнформационнойБазы;
Пользователь=ИБ.Пользователь;
Пароль=ИБ.Пароль;
База=Соединение.Connect("Srvr="""+Srvr+""";Ref="""+Ref+""";Usr="""+Пользователь+""";Pwd="""+Пароль+""";");
Если Не Коннектор Тогда
База=Соединение;
КонецЕсли;
Исключение
Если ССообщениями Тогда
Сообщить("Ошибка подключения к информационной базе """+ИБ+""". "+ОписаниеОшибки());
КонецЕсли;
База=Неопределено;
КонецПопытки;
Возврат База;
КонецФункции