Доброго времени суток!
Я только начинающая личинка программиста 1С.
Начальство дало задание - сделать внешнюю обработку для переноса документов из одной базы в другую.
Платформа 1С7.7 релиз 027, конфигурация Зарплаты и Кадры - там лежат документы - ПриказПоОтпуску, их нужно переместить в самописную базу Отдела Труда и Зароботной Платы.
Сделал вот такую форму
и получил на выходе вот что:
сам листинг вот:
//// 09.12.2015 ////////////////////////////////////////////////////////////////////////////////////////////////////////
Перем СпрДокОТиЗ, БазаОле;
Процедура ПриОткрытии()
НачДата = (НачМесяца(ТекущаяДата()));
КонДата = (КонМесяца(ТекущаяДата()));
ОчиститьОкноСообщений();
Сообщить("Инициализация подсистемы - время ожидания - 10 секунд","");
Состояние("Подключение к внешней базе");
БазаОле = СоздатьОбъект("V77S.Application");
КаталогБазыОЛе = "\\xxx\yyy";
ПользовательОле = "qqq";
ПарольОле = "qqq";
МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
ЗапускБезЗаставки = 1; // для появления заставки (например, чтобы наблюдать
// процесс запуска базы OLE визуально) поставьте здесь "0"
РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
СокрЛП(КаталогБазыОле) + " /n" +
СокрЛП(ПользовательОле)+ " /p" +
СокрЛП(ПарольОле) + МонопольныйРежимOLE,
?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
Если РезультатПодключения = 0 Тогда
Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
КонецЕсли;
Сообщить("Подключено","!!!");
СпрДокОТиЗ = БазаОле.CreateObject("Справочник.ПриказыПоОтпускамПереносИзЗиКвОТиЗ");
//Формирование заголовка таблицы на форме
ТабЗнач.НоваяКолонка("Код","СпрДокОТиЗ.Код",,,"Код",5,,1);
ТабЗнач.НоваяКолонка("Документ","СпрДокОТиЗ.Документ",,,"Документ",40,,1);
ТабЗнач.НоваяКолонка("Дата","СпрДокОТиЗ.Изменен",,,"Дата",8,,1);
ТабЗнач.НоваяКолонка("Сотрудник","СпрДокОТиЗ.Сотрудник",,,"Сотрудник",,,1);
КонецПроцедуры
//*******************************************
Процедура Сформировать()
ТабЗнач.Очистить();
//Формирование заголовка таблицы на форме, повторно после очиски, чтобы не задваивалось
ТабЗнач.НоваяКолонка("Код","СпрДокОТиЗ.Код",,,"Код",5,,1);
ТабЗнач.НоваяКолонка("Документ","СпрДокОТиЗ.Документ",,,"Документ",40,,1);
ТабЗнач.НоваяКолонка("Дата","СпрДокОТиЗ.Изменен",,,"Дата",8,,1);
ТабЗнач.НоваяКолонка("Сотрудник","СпрДокОТиЗ.Сотрудник",,,"Сотрудник",,,1);
Состояние("Подключение к внешней базе");
Номер = 0;
СпрДокОТиЗ.ВыбратьЭлементы();
Пока СпрДокОТиЗ.ПолучитьЭлемент()=1 Цикл
ТабЗнач.НоваяСтрока();
ТабЗнач.Код = СпрДокОТиЗ.Код;
ТабЗнач.Документ = СпрДокОТиЗ.Документ;
ТабЗнач.Дата = СпрДокОТиЗ.Изменен;
ТабЗнач.Сотрудник =СпрДокОТиЗ.Сотрудник;
Номер = Номер + 1;
КонецЦикла;
Сообщить("Количество Приказов по отпускам в справочнике равно " + Номер );
КонецПроцедуры
Собственно на этом всё и стало....
что делать не пойму, вроде всё правильно - голова уже кругом идёт
ночью сегодня снилось что пишу код для этой обработки((
Первым делом думаю, побороть форму так чтобы она отображала всё корректно, а затем уже писать до того состояния чтобы перенос осуществлялся
Товарищи, сильно не серчайте, на форуме только зарегистрировался что к чему ещё не до конца понял
Всем спасибо кто откликнется))