Обработка выгрузки инвентарных номеров ОС, о которых введены сведения в РегистрСведений.СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствам.
Мне пригодилась в одной организации при переносе сведений об ОС из Бухгалтерии 7.7 в Бухгалтерию 2.0:
//Обработка выгрузки инвентарных номеров ОС, о которых введены сведения в РегистрСведений.СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствам
//(C) VIA_1C, 2013 г.
Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних.ОсновноеСредство КАК ОсновноеСредство,
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер
|ИЗ
| РегистрСведений.СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствам.СрезПоследних(&МоментВремени, Организация = &Организация) КАК СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&МоментВремени, Организация = &Организация) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
| ПО СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних.ОсновноеСредство = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
|
//если надо проверить, есть ли записи об ОС, у которых не установлен инвентарный номер, то
//раскомментировать код ниже
//|ГДЕ
//| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер Есть NULL
|
|УПОРЯДОЧИТЬ ПО
| ОсновноеСредство";
Запрос.УстановитьПараметр("МоментВремени", КонецДня(ТекущаяДата()));
Запрос.УстановитьПараметр("Организация", Организация);
Результат = Запрос.Выполнить();
ТекстовыйДок = Новый ТекстовыйДокумент;
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.ИнвентарныйНомер) Тогда
ТекстовыйДок.ДобавитьСтроку(СокрЛП(ВыборкаДетальныеЗаписи.ИнвентарныйНомер));
Иначе
//ищем инвентарный номер в комментарии карточки ОС
ТекОС = ВыборкаДетальныеЗаписи.ОсновноеСредство;
Поз = Найти(ТекОС.Комментарий, "инв. ном.:");
Если Поз <> 0 Тогда
СтрИнвНомер = "";
Для Сч = Поз+11 По 250 Цикл
Если Сред(ТекОС.Комментарий,Сч, 1) <> " " Тогда
СтрИнвНомер = СтрИнвНомер + Сред(ТекОС.Комментарий,Сч, 1);
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
ТекстовыйДок.ДобавитьСтроку(СтрИнвНомер);
Иначе
Сообщить("Для ОС " + СокрЛП(ТекОС) + " не найден инв. номер в комментарии!!!");
КонецЕсли;
КонецЕсли;
КонецЦикла;
Попытка
ТекстовыйДок.Записать("ИнвентарныеНомераОС.txt", КодировкаТекста.Системная);
Сообщить("Готово! Создан файл ИнвентарныеНомераОС.txt");
Исключение
Сообщить("Не удалось записать файл");
КонецПопытки;
КонецПроцедуры
P.S. Файл выгрузки формируется в каталоге запуска обработки!