Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 дек 2024, 18:45

Почему не выводятся данные

Автор Абылайхан, 13 июл 2015, 14:24

0 Пользователей и 1 гость просматривают эту тему.

Абылайхан

Такая проблема, есть запрос, данными которого я заполняю табличную часть в документе, но почему то одна из колонок заполняется не полностью, хотя в консоли запроса тот же самый запрос выводит все данные. Что я делаю не так?

mixqn

проверьте тип данных колонки табличной части документа и тип данных результата запроса - они могут не совпадать.
так же имена колонок проверьте, должны быть одинаковыми (хотя зависит от метода, который вы используете для заполнения)

Абылайхан

Цитата: mixqn от 13 июл 2015, 14:28
проверьте тип данных колонки табличной части документа и тип данных результата запроса - они могут не совпадать.
так же имена колонок проверьте, должны быть одинаковыми (хотя зависит от метода, который вы используете для заполнения)

Вроде такой же как и первая колонка, там в некоторых строках он выводит значения, в большинстве пусто. Если бы было что-то с типом колонки , то он бы вообще ничего не показал.

mixqn

ну чудес то не бывает.
может составной тип данных?
покажите фрагмент кода, как заполняете таблицу

Абылайхан

Цитата: mixqn от 13 июл 2015, 14:45
ну чудес то не бывает.
может составной тип данных?
покажите фрагмент кода, как заполняете таблицу

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТиповойДвиженияССубконто.СубконтоДт1 КАК СтатьиЗатрат,
| ТиповойДвиженияССубконто.СубконтоКт1 КАК Поставщики,
| ТиповойДвиженияССубконто.Сумма,
| ТиповойДвиженияССубконто.СчетДт.Код
|ИЗ
| РегистрБухгалтерии.Типовой.ДвиженияССубконто КАК ТиповойДвиженияССубконто
|ГДЕ
| ТиповойДвиженияССубконто.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
| И ТиповойДвиженияССубконто.СчетДт.Код МЕЖДУ ""7000"" И ""8100""";

Запрос.УстановитьПараметр("ДатаНачала", НачалоПериода);
Запрос.УстановитьПараметр("ДатаОкончания", КонецПериода);


//Затраты.Загрузить(Запрос.Выполнить().Выгрузить());

Запрос.УстановитьПараметр("Счет", Счет);

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи   
НоваяСтрока = Затраты.Добавить();
НоваяСтрока.СтатьиЗатрат = ВыборкаДетальныеЗаписи.СтатьиЗатрат;
НоваяСтрока.Поставщики = ВыборкаДетальныеЗаписи.Поставщики;
НоваяСтрока.Сумма = ВыборкаДетальныеЗаписи.Сумма;

КонецЦикла;

mixqn

Совет: вместо цикла можно использовать метод Загрузить.
Либо в цикле сократить количество строк - использовать метод ЗаполнитьЗначения.

по существу: продолжаю считать, что причина в разных типах данных :)
проверьте еще раз внимательно типы данных в источнике и получателе. должно все соответствовать 1 в 1.
Добавлено: 13 июл 2015, 15:03


посмотрел еще раз ваши картинки. там где консоль запросов колонка "Поставщики", а выводится судя по названию номенклатура - проверьте.

Абылайхан

Цитата: mixqn от 13 июл 2015, 15:02
Совет: вместо цикла можно использовать метод Загрузить.
Либо в цикле сократить количество строк - использовать метод ЗаполнитьЗначения.

по существу: продолжаю считать, что причина в разных типах данных :)
проверьте еще раз внимательно типы данных в источнике и получателе. должно все соответствовать 1 в 1.
Добавлено: 13 июл 2015, 15:03


посмотрел еще раз ваши картинки. там где консоль запросов колонка "Поставщики", а выводится судя по названию номенклатура - проверьте.

Вы были правы, это был составной тип данных, но вывести все что там есть не получается. Как можно сделать колонку универсальной, чтобы в этой колонке показывались все результаты запроса?

И еще вопрос, этот запрос жуть как долго работает, можно ли как нибудь ускорить?

Использовал метод Загрузить вместо цикла, но все равно долго.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск