Добрый день, есть обработка которая выгружает данные по Основным средствам, все хорошо только вот данные по Группе Основного средства выгружаются, только не у все ОС те которые указаны в справочнике ОС. Кто подскажет где копать? (см. подробнее скриншоты).
Вот сама строчка кода для вывода инфо по группе ОС:
Лист.Cells(a,19).NumberFormat = "@";
Лист.Cells(a,19).value = Строка(РезультатЗапроса.ОсновноеСредство.ГруппаОС);
Вот сама строчка кода для вывода инфо по группе ОС:
Лист.Cells(a,19).NumberFormat = "@";
Лист.Cells(a,19).value = Строка(РезультатЗапроса.ОсновноеСредство.ГруппаОС);
Прикрепленные файлы:


По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Процедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 1;
//Пытаемся подключиться к Excel
Попытка
Excel = новый COMОбъект("Excel.Application");
Исключение
Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
Возврат;
КонецПопытки;
//Подключились удачно, открываем файл
Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");
//Открываем необходимый лист
Лист = Excel.Sheets(1);
ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ХозрасчетныйДвиженияССубконто.Период,
| ХозрасчетныйДвиженияССубконто.Регистратор,
| ХозрасчетныйДвиженияССубконто.СчетДт,
| ХозрасчетныйДвиженияССубконто.СубконтоДт1,
| ХозрасчетныйДвиженияССубконто.СубконтоДт2,
| ХозрасчетныйДвиженияССубконто.СубконтоДт3,
| ХозрасчетныйДвиженияССубконто.Сумма,
| ХозрасчетныйДвиженияССубконто.СуммаНУДт,
| ХозрасчетныйДвиженияССубконто.СуммаНУКт,
| ХозрасчетныйДвиженияССубконто.СчетКт,
| ХозрасчетныйДвиженияССубконто.СубконтоКт1,
| ПервоначальныеСведенияОСБухгалтерскийУчет.ОсновноеСредство,
| ПервоначальныеСведенияОСБухгалтерскийУчет.ПервоначальнаяСтоимость,
| ПервоначальныеСведенияОСБухгалтерскийУчет.Период КАК Период1
|ИЗ
| РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет КАК ПервоначальныеСведенияОСБухгалтерскийУчет
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
| &НачалоПериода,
| &КонецПериода,
| (СчетДт.Код = ""20.01""
| ИЛИ СчетДт.Код = ""25""
| ИЛИ СчетДт.Код = ""26"")
| И СчетКт.Код = ""02.01"",
| ,
| ) КАК ХозрасчетныйДвиженияССубконто
| ПО ПервоначальныеСведенияОСБухгалтерскийУчет.ОсновноеСредство.Ссылка = ХозрасчетныйДвиженияССубконто.СубконтоКт1.Ссылка
|ГДЕ
| ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И ХозрасчетныйДвиженияССубконто.Сумма <> 0");
Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170531000000'));
РезультатЗапроса = Запрос.Выполнить().Выбрать();
a=1;
Пока РезультатЗапроса.Следующий() Цикл
a = a + 1;
Лист.Cells(a,1).NumberFormat = "@";
Лист.Cells(a,1).value = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());
Лист.Cells(a,2).NumberFormat = "@";
Лист.Cells(a,2).value = РезультатЗапроса.Регистратор.Номер;
Лист.Cells(a,3).NumberFormat = "ДД.ММ.ГГГГ";
Лист.Cells(a,3).value = РезультатЗапроса.Регистратор.Дата;
Лист.Cells(a,4).NumberFormat = "@";
Лист.Cells(a,4).value = Строка(РезультатЗапроса.Регистратор);
Лист.Cells(a,5).NumberFormat = "@";
Если (РезультатЗапроса.СчетДт.Код = "20.01") Тогда
//Лист.Cells(a,5).value = Строка(РезультатЗапроса.СубконтоДт3.Код);
КонецЕсли;
Лист.Cells(a,6).NumberFormat = "ДД.ММ.ГГГГ";
Лист.Cells(a,6).value = НачалоМесяца(РезультатЗапроса.Регистратор.Дата);
Лист.Cells(a,7).NumberFormat = "@";
//Лист.Cells(a,7).value = РезультатЗапроса.ОсновноеСредство.УИД;
Лист.Cells(a,8).NumberFormat = "@";
Лист.Cells(a,9).NumberFormat = "@";
Лист.Cells(a,10).NumberFormat = "0,00";
Лист.Cells(a,10).value = РезультатЗапроса.Сумма;
Лист.Cells(a,11).NumberFormat = "@";
Если (РезультатЗапроса.СуммаНУКт > 0) ИЛИ (РезультатЗапроса.СуммаНУДт > 0) Тогда
Лист.Cells(a,11).value = "Да";
КонецЕсли;
Лист.Cells(a,12).NumberFormat = "@";
Лист.Cells(a,12).value = РезультатЗапроса.СчетДт.Код;
Лист.Cells(a,14).NumberFormat = "@";
Лист.Cells(a,14).value = РезультатЗапроса.ОсновноеСредство.НаименованиеПолное;
Лист.Cells(a,15).NumberFormat = "@";
Лист.Cells(a,15).value = Строка(РезультатЗапроса.ОсновноеСредство.АмортизационнаяГруппа);
Лист.Cells(a,16).NumberFormat = "ДД.ММ.ГГГГ";
Лист.Cells(a,16).value = РезультатЗапроса.Период1;
Лист.Cells(a,17).NumberFormat = "0,00";
Лист.Cells(a,17).value = РезультатЗапроса.ПервоначальнаяСтоимость;
Лист.Cells(a,19).NumberFormat = "@";
Лист.Cells(a,19).value = Строка(РезультатЗапроса.ОсновноеСредство.ГруппаОС);
КонецЦикла;
Excel.Save();
Excel.quit();
КонецПроцедуры
Показать
Откройте в конфигураторе справочник ОС, в нем форму элемента, в ней выделите элемент данных из Вашего второго скриншота и перепроверьте название поля. Возможно, оно называется не ГруппаОС. В выводе в эксель ошибок не вижу.
А так?
Отладчиком можете остановиться на этой строке и посмотреть в табло что в РезультатЗапроса.ОсновноеСредство.ГруппаОС ? Подсказка: табличные части и результаты запросов можно посмотреть в табло кнопкой F2.
Лист.Cells(a,19).value = Строка(РезультатЗапроса.ОсновноеСредство.ГруппаОС.Наименование);
Отладчиком можете остановиться на этой строке и посмотреть в табло что в РезультатЗапроса.ОсновноеСредство.ГруппаОС ? Подсказка: табличные части и результаты запросов можно посмотреть в табло кнопкой F2.
Ну вот наверное точку останова поставить нужно РезультатЗапроса = Запрос.Выполнить().Выбрать(); и написать Запрос.Выполнить().Выгрузить() Получиш таблицу с данными Ну и если там не все данные значит смотри параметры выборки в запросе
(10) При чём здесь "а"??
"а" - это строка экселя, в которую идет вывод. Если убрать - всё будет последовательно выводиться в шапку таблицы и на выходе останется последнее значение запроса вместо шапки.
С циклом "Пока РезультатЗапроса.Следующий() Цикл" всё в порядке.
"а" - это строка экселя, в которую идет вывод. Если убрать - всё будет последовательно выводиться в шапку таблицы и на выходе останется последнее значение запроса вместо шапки.
С циклом "Пока РезультатЗапроса.Следующий() Цикл" всё в порядке.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот