helpf.pro
Регистрация

Запрос не выполняется

bless18
09.11.2010 12:12Прочитано: 9297
Здравствуйте!
Пишу следующий запрос
Код 1C v 8.х
 
Если Субконто1 = ПланыВидовХарактеристик.ВидыСубконтоТиповые.Номенклатура Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ТиповойОстаткиИОбороты.Счет,
| ТиповойОстаткиИОбороты.Субконто1,
| ТиповойОстаткиИОбороты.Субконто2,
| ТиповойОстаткиИОбороты.СуммаКонечныйОстатокДт,
| ТиповойОстаткиИОбороты.СуммаКонечныйОстатокКт,
| ТиповойОстаткиИОбороты.КоличествоКонечныйОстатокДт,
| ТиповойОстаткиИОбороты.КоличествоКонечныйОстатокКт
|ИЗ
| РегистрБухгалтерии.Типовой.ОстаткиИОбороты(, , , , , , ) КАК ТиповойОстаткиИОбороты
|ГДЕ
| ТиповойОстаткиИОбороты.Субконто1 = &Субконто1
| И ТиповойОстаткиИОбороты.Субконто2 = &Субконто2";

Запрос.УстановитьПараметр("Субконто1", ПланыВидовХарактеристик.ВидыСубконтоТиповые.Номенклатура);
Запрос.УстановитьПараметр("Субконто2", ПланыВидовХарактеристик.ВидыСубконтоТиповые.МестаХранения);
Ит = Запрос.Выполнить().Выгрузить();

Для Каждого СтрокаИт Из Ит Цикл
Если СтрокаИт.Счет <> ТекСтрокаИнвентаризация.СчетТМЗ Тогда
Продолжить;
КонецЕсли;
Остаток = СтрокаИт.КоличествоКонечныйОстатокДт;
Сумма = СтрокаИт.СуммаКонечныйОстатокДт;
Если (Константы.СебестоимостьПосреднему.Получить() = 0) Или (Остаток = 0) Тогда
ТекСтрокаИнвентаризация.ЦенаУчет = ОбщегоНазначения.ПолучитьЦену(ТекСтрокаИнвентаризация.Товар, "У", Дата);
Иначе
ТекСтрокаИнвентаризация.ЦенаУчет = Окр(Сумма / Остаток, 4);
КонецЕсли;
Прервать;
КонецЦикла;
КонецЕсли;


Но в цикл не заходит, подскажите, в чем может быть дело
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
09.11.2010 12:18Ответ № 1
(0) какой тип параметров, например - ПланыВидовХарактеристик.ВидыСубконтоТиповые.Номенклатура ?
bless18
09.11.2010 12:23Ответ № 2
Субконто1 имеет тип справочника..
E_Migachev
09.11.2010 12:31Ответ № 3
(2) ну и ), зачем используешь ПланыВидовХарактеристик, когда надо через справочники.номенклатура *13
bless18
09.11.2010 12:35Ответ № 4
а через справочник ошибка, что нельзя сравнивать поля неограниченной длины
bless18
09.11.2010 12:37Ответ № 5
Ошибка при выполнении обработчика - '{Документ.ИнвентаризацияПоСкладу(158)}: Ошибка при вызове метода контекста (Выполнить): {(12, 35)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
ТиповойОстаткиИОбороты.Субконто1 <<?>>= &Субконто1'
по причине:
{Документ.ИнвентаризацияПоСкладу(158)}: Ошибка при вызове метода контекста (Выполнить): {(12, 35)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
ТиповойОстаткиИОбороты.Субконто1 <<?>>= &Субконто1

по причине:
{(12, 35)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
bless18
09.11.2010 12:38Ответ № 6
а Запрос такой..
Код 1C v 8.х
 
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ТиповойОстаткиИОбороты.Счет,
| ТиповойОстаткиИОбороты.Субконто1,
| ТиповойОстаткиИОбороты.Субконто2,
| ТиповойОстаткиИОбороты.СуммаКонечныйОстатокДт,
| ТиповойОстаткиИОбороты.СуммаКонечныйОстатокКт,
| ТиповойОстаткиИОбороты.КоличествоКонечныйОстатокДт,
| ТиповойОстаткиИОбороты.КоличествоКонечныйОстатокКт
|ИЗ
| РегистрБухгалтерии.Типовой.ОстаткиИОбороты(, , , , , , ) КАК ТиповойОстаткиИОбороты
|ГДЕ
| ТиповойОстаткиИОбороты.Субконто1 = &Субконто1
| И ТиповойОстаткиИОбороты.Субконто2 = &Субконто2";

Запрос.УстановитьПараметр("Субконто1", Справочники.Номенклатура);
Запрос.УстановитьПараметр("Субконто2", Справочники.МестаХранения);
Ит = Запрос.Выполнить().Выгрузить();

Для Каждого СтрокаИт Из Ит Цикл
Если СтрокаИт.Счет <> ТекСтрокаИнвентаризация.СчетТМЗ Тогда
Продолжить;
КонецЕсли;
Остаток = СтрокаИт.КоличествоКонечныйОстатокДт;
Сумма = СтрокаИт.СуммаКонечныйОстатокДт;
Если (Константы.СебестоимостьПосреднему.Получить() = 0) Или (Остаток = 0) Тогда
ТекСтрокаИнвентаризация.ЦенаУчет = ОбщегоНазначения.ПолучитьЦену(ТекСтрокаИнвентаризация.Товар, "У", Дата);
Иначе
ТекСтрокаИнвентаризация.ЦенаУчет = Окр(Сумма / Остаток, 4);
КонецЕсли;
Прервать;
КонецЦикла;

E_Migachev
09.11.2010 12:41Ответ № 7
надо Справочники.Номенклатура.ПустаяСсылка()
bless18
09.11.2010 12:42Ответ № 8
Работает!
Через массив записала параметры )
Код 1C v 8.х
 
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ТиповойОстаткиИОбороты.Счет,
| ТиповойОстаткиИОбороты.Субконто1,
| ТиповойОстаткиИОбороты.Субконто2,
| ТиповойОстаткиИОбороты.СуммаКонечныйОстатокДт,
| ТиповойОстаткиИОбороты.СуммаКонечныйОстатокКт,
| ТиповойОстаткиИОбороты.КоличествоКонечныйОстатокДт,
| ТиповойОстаткиИОбороты.КоличествоКонечныйОстатокКт
|ИЗ
| РегистрБухгалтерии.Типовой.ОстаткиИОбороты(, , , , , &ВидыСубконто, ) КАК ТиповойОстаткиИОбороты";
Массив = Новый Массив;
Массив.Добавить(ПланыВидовХарактеристик.ВидыСубконтоТиповые.Номенклатура);
Массив.Добавить(ПланыВидовХарактеристик.ВидыСубконтоТиповые.МестаХранения);
Запрос.УстановитьПараметр("ВидыСубконто", Массив);
Ит = Запрос.Выполнить().Выгрузить();

Для Каждого СтрокаИт Из Ит Цикл
Если СтрокаИт.Счет <> ТекСтрокаИнвентаризация.СчетТМЗ Тогда
Продолжить;
КонецЕсли;
Остаток = СтрокаИт.КоличествоКонечныйОстатокДт;
Сумма = СтрокаИт.СуммаКонечныйОстатокДт;
Если (Константы.СебестоимостьПосреднему.Получить() = 0) Или (Остаток = 0) Тогда
ТекСтрокаИнвентаризация.ЦенаУчет = ОбщегоНазначения.ПолучитьЦену(ТекСтрокаИнвентаризация.Товар, "У", Дата);
Иначе
ТекСтрокаИнвентаризация.ЦенаУчет = Окр(Сумма / Остаток, 4);
КонецЕсли;
Прервать;
КонецЦикла;
КонецЕсли;

E_Migachev
09.11.2010 12:49Ответ № 9
(8) Ну правильно, так ты отобрала по ВидамСубконото, а в (0) хотела отобрать по пустым ссылкам справочников
bless18
09.11.2010 13:13Ответ № 10
Спасибо, за то, что навели на правильную мысль )
bless18
11.11.2010 06:10Ответ № 11
Вопрос закрыт!
Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.