Доброго времени суток! Информация такая: 1С 8.3.8.2027, Конфигурация "Учёт в ОСМД. Расчет квартплаты в Украине" редакция 1.0.5.7 Столкнулся с такой проблемой. в одном из глобальных модулей есть пакет запросов. к нему обращаются разные документы для получения различных данных. Создал новый документ и тоже обращаюсь к этому пакету запросов, НО получаю результат запроса весь "Ошибка чтения значения". в запрос передаётся в качестве параметра 2 значения: ЛицевойСчет и ПериодНачисления (берутся из полей на форме документа). Естественно, все документы из конфигурации, запрос обрабатывает нормально, а из моего нет. К запросу обращался и через общий модуль и копировал его в модуль моего документа и результата нет. Понимаю что дело в параметрах, которые я передаю в запрос, т.к. ни локально ни глобально он не отрабатывает. НО параметры проверил - такие же как и от других документов, такие же и из моего передаются в него, НО УВЫ.... вкратце немного кода:
1. в общем модуле ПечатьКвитанцииНаОплату: Много кода
Функция ПолучитьОбщуюСтруктуруКвитанции(ЛицевыеСчета, МесяцНачисления) Экспорт
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасчетыПоЛицевымСчетамОстатки.ЛицевойСчет КАК ЛицевойСчет, | РасчетыПоЛицевымСчетамОстатки.Услуга КАК Услуга, | РасчетыПоЛицевымСчетамОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрНакопления.РасчетыПоЛицевымСчетам.Остатки(КОНЕЦПЕРИОДА(&МесяцНачисления, МЕСЯЦ), ЛицевойСчет В (&ЛицевыеСчета)) КАК РасчетыПоЛицевымСчетамОстатки |ГДЕ | РасчетыПоЛицевымСчетамОстатки.Услуга <> ЗНАЧЕНИЕ(Справочник.Услуги.РеструктуризацияДолга) | |СГРУППИРОВАТЬ ПО | РасчетыПоЛицевымСчетамОстатки.ЛицевойСчет, | РасчетыПоЛицевымСчетамОстатки.Услуга, | РасчетыПоЛицевымСчетамОстатки.СуммаОстаток |ИТОГИ | СУММА(СуммаОстаток) |ПО | ЛицевойСчет, | Услуга |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | УстановленныеПриборыУчетаСрезПоследних.ОбъектУстановки, | УстановленныеПриборыУчетаСрезПоследних.ПриборУчета, | СУММА(ЕСТЬNULL(ПоказанияПрибораУчета.ТекущиеПоказания, 0)) КАК ТекущиеПоказания, | СУММА(ЕСТЬNULL(ПоказанияПрибораУчета.ПредыдущиеПоказания, 0)) КАК ПредыдущиеПоказания, | ПоказанияПрибораУчета.ПриборУчета.Коэффициент, | КОЛИЧЕСТВО(УстановленныеПриборыУчетаСрезПоследних.ПриборУчета) КАК КоличествоПиборовНаУслуге, | ПоказанияПрибораУчета.ПриборУчета.Услуга КАК Услуга, | ПоказанияПрибораУчета.ПриборУчета.ЕдиницаИзмерения КАК ЕдиницаИзмерения |ИЗ | РегистрСведений.УстановленныеПриборыУчета.СрезПоследних(КОНЕЦПЕРИОДА(&МесяцНачисления, МЕСЯЦ), ОбъектУстановки В (&ЛицевыеСчета)) КАК УстановленныеПриборыУчетаСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ПоказанияПриборовУчетаСрезПоследних.ПриборУчета КАК ПриборУчета, | СУММА(ПоказанияПриборовУчетаСрезПоследних.Значение) КАК ТекущиеПоказания, | СУММА(0) КАК ПредыдущиеПоказания, | ПоказанияПриборовУчетаСрезПоследних.ВидТарифа КАК ВидТарифа | ИЗ | РегистрСведений.ПоказанияПриборовУчета.СрезПоследних(КОНЕЦПЕРИОДА(&МесяцНачисления, МЕСЯЦ), ) КАК ПоказанияПриборовУчетаСрезПоследних | | СГРУППИРОВАТЬ ПО | ПоказанияПриборовУчетаСрезПоследних.ПриборУчета, | ПоказанияПриборовУчетаСрезПоследних.ВидТарифа | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ПоказанияПриборовУчетаСрезПоследних.ПриборУчета, | СУММА(0), | СУММА(ПоказанияПриборовУчетаСрезПоследних.Значение), | ПоказанияПриборовУчетаСрезПоследних.ВидТарифа | ИЗ | РегистрСведений.ПоказанияПриборовУчета.СрезПоследних(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&МесяцНачисления, МЕСЯЦ), ДЕНЬ, -1), ) КАК ПоказанияПриборовУчетаСрезПоследних | ГДЕ | ПоказанияПриборовУчетаСрезПоследних.Период < КОНЕЦПЕРИОДА(&МесяцНачисления, МЕСЯЦ) | | СГРУППИРОВАТЬ ПО | ПоказанияПриборовУчетаСрезПоследних.ПриборУчета, | ПоказанияПриборовУчетаСрезПоследних.ВидТарифа) КАК ПоказанияПрибораУчета | ПО УстановленныеПриборыУчетаСрезПоследних.ПриборУчета = ПоказанияПрибораУчета.ПриборУчета |ГДЕ | УстановленныеПриборыУчетаСрезПоследних.Действует = ИСТИНА | |СГРУППИРОВАТЬ ПО | УстановленныеПриборыУчетаСрезПоследних.ОбъектУстановки, | УстановленныеПриборыУчетаСрезПоследних.ПриборУчета, | ПоказанияПрибораУчета.ПриборУчета.Коэффициент, | ПоказанияПрибораУчета.ПриборУчета.Услуга, | ПоказанияПрибораУчета.ПриборУчета.ЕдиницаИзмерения | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ЗаменыПриборовУчета.ОбъектУстановки, | ЗаменыПриборовУчета.ПриборУчета, | ЗаменыПриборовУчета.Показание, | ЗаменыПриборовУчета.ПоказаниеПредыдущее, | ЗаменыПриборовУчета.ПриборУчета.Коэффициент, | 0, | ЗаменыПриборовУчета.Услуга, | ЗаменыПриборовУчета.ПриборУчета.ЕдиницаИзмерения |ИЗ | РегистрНакопления.ЗаменыПриборовУчета КАК ЗаменыПриборовУчета |ГДЕ | ЗаменыПриборовУчета.Период МЕЖДУ НАЧАЛОПЕРИОДА(&МесяцНачисления, МЕСЯЦ) И КОНЕЦПЕРИОДА(&МесяцНачисления, МЕСЯЦ) | |УПОРЯДОЧИТЬ ПО | Услуга УБЫВ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | РасчетыПоЛицевымСчетам.ЛицевойСчет.Владелец КАК Здание, | РасчетыПоЛицевымСчетам.ЛицевойСчет КАК ЛицевойСчет, | РасчетыПоЛицевымСчетам.Услуга КАК Услуга, | РасчетыПоЛицевымСчетам.Услуга.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | РасчетыПоЛицевымСчетам.Тариф КАК Тариф, | РасчетыПоЛицевымСчетам.ДнейНачислено КАК ДнейНачислено, | СУММА(ЕСТЬNULL(ВЫБОР | КОГДА РасчетыПоЛицевымСчетам.ВидНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыНачислений.Начисление) | ТОГДА РасчетыПоЛицевымСчетам.Количество | КОНЕЦ, 0)) КАК КоличествоЕдИзм, | СУММА(ВЫБОР | КОГДА РасчетыПоЛицевымСчетам.ВидНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыНачислений.Начисление) | ТОГДА РасчетыПоЛицевымСчетам.Сумма | ИНАЧЕ 0 | КОНЕЦ) КАК Начисление, | СУММА(ВЫБОР | КОГДА РасчетыПоЛицевымСчетам.ВидНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыНачислений.Субсидия) | ТОГДА РасчетыПоЛицевымСчетам.Сумма | ИНАЧЕ 0 | КОНЕЦ) КАК Субсидия, | СУММА(ВЫБОР | КОГДА РасчетыПоЛицевымСчетам.ВидНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыНачислений.Льгота) | ТОГДА РасчетыПоЛицевымСчетам.Сумма | ИНАЧЕ 0 | КОНЕЦ) КАК Льгота, | СУММА(ВЫБОР | КОГДА РасчетыПоЛицевымСчетам.ВидНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыНачислений.Перерасчет) | ТОГДА РасчетыПоЛицевымСчетам.Сумма | ИНАЧЕ 0 | КОНЕЦ) КАК Перерасчет, | СУММА(ВЫБОР | КОГДА РасчетыПоЛицевымСчетам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) | И ТИПЗНАЧЕНИЯ(РасчетыПоЛицевымСчетам.Регистратор) <> ТИП(Документ.ДоговорРеструктуризацииДолга) | ТОГДА РасчетыПоЛицевымСчетам.Сумма | ИНАЧЕ 0 | КОНЕЦ) КАК Оплата, | СУММА(ВЫБОР | КОГДА НЕ РасчетыПоЛицевымСчетам.ВидНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыНачислений.Начисление) | И НЕ РасчетыПоЛицевымСчетам.ВидНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыНачислений.Льгота) | И НЕ РасчетыПоЛицевымСчетам.ВидНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыНачислений.Субсидия) | И НЕ РасчетыПоЛицевымСчетам.ВидНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыНачислений.Перерасчет) | И РасчетыПоЛицевымСчетам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | И ТИПЗНАЧЕНИЯ(РасчетыПоЛицевымСчетам.Регистратор) <> ТИП(Документ.ДоговорРеструктуризацииДолга) | ТОГДА РасчетыПоЛицевымСчетам.Сумма | ИНАЧЕ 0 | КОНЕЦ) КАК Корректировка, | РасчетыПоЛицевымСчетам.ЛицевойСчет.ОбъектЛицевогоСчета КАК Квартира, | ЕСТЬNULL(РасчетыПоЛицевымСчетам.Порог, """") КАК Порог |ИЗ | РегистрНакопления.РасчетыПоЛицевымСчетам КАК РасчетыПоЛицевымСчетам |ГДЕ | РасчетыПоЛицевымСчетам.ЛицевойСчет В(&ЛицевыеСчета) | И РасчетыПоЛицевымСчетам.Период МЕЖДУ НАЧАЛОПЕРИОДА(&МесяцНачисления, МЕСЯЦ) И КОНЕЦПЕРИОДА(&МесяцНачисления, МЕСЯЦ) | И РасчетыПоЛицевымСчетам.Услуга <> ЗНАЧЕНИЕ(Справочник.Услуги.РеструктуризацияДолга) | |СГРУППИРОВАТЬ ПО | РасчетыПоЛицевымСчетам.ЛицевойСчет, | РасчетыПоЛицевымСчетам.Услуга, | РасчетыПоЛицевымСчетам.ЛицевойСчет.Владелец, | РасчетыПоЛицевымСчетам.Услуга.ЕдиницаИзмерения, | РасчетыПоЛицевымСчетам.Тариф, | РасчетыПоЛицевымСчетам.ДнейНачислено, | РасчетыПоЛицевымСчетам.ЛицевойСчет.ОбъектЛицевогоСчета, | ЕСТЬNULL(РасчетыПоЛицевымСчетам.Порог, """") | |УПОРЯДОЧИТЬ ПО | Услуга УБЫВ |ИТОГИ | СУММА(КоличествоЕдИзм), | СУММА(Начисление), | СУММА(Субсидия), | СУММА(Льгота), | СУММА(Перерасчет), | СУММА(Оплата), | СУММА(Корректировка) |ПО | ЛицевойСчет, | Услуга |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПланированиеАвансовЛицевыеСчета.ЛицевойСчет, | ПланированиеАвансовЛицевыеСчета.СуммаНачислено КАК СуммаАванса, | ПланированиеАвансовЛицевыеСчета.Ссылка.Услуга |ИЗ | Документ.ПланированиеАвансов.ЛицевыеСчета КАК ПланированиеАвансовЛицевыеСчета |ГДЕ | НАЧАЛОПЕРИОДА(ПланированиеАвансовЛицевыеСчета.Ссылка.Дата, МЕСЯЦ) = НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&МесяцНачисления, МЕСЯЦ, 1), МЕСЯЦ) | И ПланированиеАвансовЛицевыеСчета.ЛицевойСчет В(&ЛицевыеСчета) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПлатежиПоРеструктуризацииДолга.ЛицевойСчет КАК ЛицевойСчет, | ПлатежиПоРеструктуризацииДолга.СуммаПлатежа КАК СуммаПлатежа, | ПлатежиПоРеструктуризацииДолга.ОбщаяСумма КАК ОбщаяСумма, | ПлатежиПоРеструктуризацииДолга.Регистратор КАК ДокументРеструктуризации, | ЕСТЬNULL(РасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаРасход, 0) КАК Оплаты, | ПлатежиПоРеструктуризацииДолга.ОбщаяСумма - ЕСТЬNULL(РасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаРасход, 0) КАК ОстатокРеструктуризации |ИЗ | РегистрСведений.ПлатежиПоРеструктуризацииДолга КАК ПлатежиПоРеструктуризацииДолга | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыПоЛицевымСчетам.ОстаткиИОбороты(, КОНЕЦПЕРИОДА(&МесяцНачисления, МЕСЯЦ), , , Услуга = ЗНАЧЕНИЕ(Справочник.Услуги.РеструктуризацияДолга)) КАК РасчетыПоЛицевымСчетамОстаткиИОбороты | ПО ПлатежиПоРеструктуризацииДолга.ЛицевойСчет = РасчетыПоЛицевымСчетамОстаткиИОбороты.ЛицевойСчет |ГДЕ | ПлатежиПоРеструктуризацииДолга.Период >= КОНЕЦПЕРИОДА(&МесяцНачисления, МЕСЯЦ) | И ПлатежиПоРеструктуризацииДолга.ЛицевойСчет В(&ЛицевыеСчета) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | РасчетыПоЛицевымСчетамОстатки.ЛицевойСчет КАК ЛицевойСчет, | РасчетыПоЛицевымСчетамОстатки.Услуга КАК Услуга, | РасчетыПоЛицевымСчетамОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрНакопления.РасчетыПоЛицевымСчетам.Остатки(НАЧАЛОПЕРИОДА(&МесяцНачисления, МЕСЯЦ), ЛицевойСчет В (&ЛицевыеСчета)) КАК РасчетыПоЛицевымСчетамОстатки |ГДЕ | РасчетыПоЛицевымСчетамОстатки.Услуга <> ЗНАЧЕНИЕ(Справочник.Услуги.РеструктуризацияДолга) | |СГРУППИРОВАТЬ ПО | РасчетыПоЛицевымСчетамОстатки.ЛицевойСчет, | РасчетыПоЛицевымСчетамОстатки.Услуга, | РасчетыПоЛицевымСчетамОстатки.СуммаОстаток |ИТОГИ | СУММА(СуммаОстаток) |ПО | ЛицевойСчет |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДоговорРеструктуризацииДолга.Ссылка |ИЗ | Документ.ДоговорРеструктуризацииДолга КАК ДоговорРеструктуризацииДолга |ГДЕ | ДоговорРеструктуризацииДолга.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&МесяцНачисления, МЕСЯЦ) И КОНЕЦПЕРИОДА(&МесяцНачисления, МЕСЯЦ) | И ДоговорРеструктуризацииДолга.Проведен = ИСТИНА";
Процедура ПолучитьУслугиИНачисления(ЛицевойСчет,МесяцНачисления) //Обращаемся к функции ПолучитьОбщуюСтруктуруКвитанции(ЛицевыеСчета, МесяцНачисления) в общем модуле ПечатьКвитанцииНаОплату ГлобальнаяВыборка = ПечатьКвитанцииНаОплату.ПолучитьОбщуюСтруктуруКвитанции(ЛицевойСчет,МесяцНачисления);
Пока ВыборкаУслуга.Следующий() Цикл СтрокаТЧ = Объект.РазмерыПлатежей.Добавить(); СтрокаТЧ.ВидУслуги = ВыборкаУслуга.Услуга.КраткоеНаименование; СтрокаТЧ.РазмерОплатыСУчетомЛьгот = ВыборкаУслуга.Начисление - ВыборкаУслуга.Льгота; СтрокаТЧ.РазмерОплатыВПределахНормативов = ВыборкаУслуга.Начисление; КонецЦикла; КонецПроцедуры
этот фрагмент тоже взят из модуля ПечатьКвитанцииНаОплату, только в цикле обхода выборки в оригинале заполняются параметры макета, а я заполняю табличную часть РазмерыПлатежей формы. Обращаюсь к процедуре так:
где Объект.ЛицевойСчет и Объект.ПериодНачисления поля на форме. В общем грешу на параметры но после 2-х дней танцев с бубнами уже не вижу где ошибка. Подскажите где я ошибся. Заранее спасибо
sanytch @ Вчера, 11:20
, Да уж... то ли сформулировал не понятно, то ли конфигурация никому не известная, то ли задача невыполнимая (маловероятнее всего). Ответов 0!!! Разбил пакет на отдельные запросы и по отдельности, поэтапно выполнил все необходимые (остался открытым вопрос - почему по отдельности работают, а пакетом нет...), результаты запросов объединил в одной ТЗ. Как то так...
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4613 раз
Рейтинг: 3750.1
sanytch, видимо дело не в запросе. Если бы вы привели полное описание ошибки в 1С и строку, где ошибка возникает, может были бы у кого-то какие-то варианты. А так нужно вызывать гадалку.
Vofka @ Вчера, 16:28
, В том то и дело что ошибок нет. просто при нажатии на кнопку Заполнить, выполнялся запрос без явных ошибок и ТЧ оставалась пустой. а в отладчике, всё, что запрос отбирает, имеет значение "Ошибка чтения значения".
Vofka @ Сегодня, 10:24
, К сожалению документ уже готов и версии с именно этой проблемой не осталось. По памяти лиш могу сказать что ставил точку останова на подобной строке
Vofka @ Сегодня, 11:05
, Прошу прощения. На скорую руку состряпал. Ставил точку и после
ВыборкаНачисления =
, точнее в
Пока ВыборкаНачисления.Следующий() Цикл
и внутри цикла тоже, но цикл не выполнялся, т.е. результат запроса ПУСТОЙ, посему и думал на параметры, которые передаю в запрос, ибо сам текст запроса мною не менялся, и этот же запрос отлично отрабатывал когда вызывался из другого документа...Разбил пакет на отдельные запросы, параметры ТЕ ЖЕ и работает!!!!!!! дабы не сломать мозг я пометил этот казус как "из разряда фантастики"))) тему можно считать закрытой...
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!