powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Выборка по регистру накопления
25 сообщений из 31, страница 1 из 2
Выборка по регистру накопления
    #36152213
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте
Пишу отчет
Есть Регистр накопления НачислениеСФ, в нем реквизит Источник (Тип СправочникСсылка.ИсточникиТепла)
Необходимо вывести отчеты, где: Справочники.ИсточникиТепла.ДалансоваяПринадлежность=Истина(1 отчет)
и Справочники.ИсточникиТепла.ДалансоваяПринадлежность=Ложь(2 отчет)

Делаю следущее:

Выборка = Справочники.ИсточникиТепла.Выбрать();
Отбор = Новый Структура ("Источник",Выборка.Ссылка);
Пока Выборка.Следующий() Цикл
Данные=Начисление.Выбрать(НачДата,КонДата,Отбор);
ТолькоСвои = Данные.Источник.БалансоваяПринадлежность;
Если ТолькоСвои = Истина И ВидФормыОтчета = "3" Тогда
ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ,ТолькоСвои=Истина,ТаблНачисления,ТаблНачисленияК,СразуНаПечать);

ИначеЕсли (ТолькоСвои = Ложь И ВидФормыОтчета = "4") Тогда
ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ,ТолькоСвои=Ложь,ТаблНачисления,ТаблНачисленияК,СразуНаПечать);
КонецЕсли;
КонецЦикла;


При отладке выскакивает ошибка:
Ошибка при вызове метода контекста (Выбрать): Недопустимое значение параметра (параметр номер '3') Данные=Начисление.Выбрать(НачДата,КонДата,Отбор);

Подскажите, в чем тут дело...
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152279
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в 8-ке за такие "отчеты" принято бить между ушей чем-нибудь тяжелым...
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152289
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выборка = Справочники.ИсточникиТепла.Выбрать();
Пока Выборка.Следующий() Цикл
Отбор = Новый Структура ("Источник",Выборка.Ссылка);

для начала...
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152343
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господин ПЖВыборка = Справочники.ИсточникиТепла.Выбрать();
Пока Выборка.Следующий() Цикл
Отбор = Новый Структура ("Источник",Выборка.Ссылка);

для начала...

такая же ошибка возникает..

Бить то зачем?
в этой сфере я не давно, еще учусь
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152370
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать
|
| НачислениеСФ.Источник
|
| ИЗ
|
| РегистрНакопления.НачислениеСФ КАК НачислениеСФ
|
| ГДЕ
| НачислениеСФ.Источник.БалансоваяПринадлежность";

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

Если Рез.Пустой() Тогда
Возврат;
КонецЕсли;

Выборка = Рез.Выбрать();
Пока Выборка.Следующий() Цикл

Сообщить("" + Выборка.Источник);

КонецЦикла;
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152376
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Olga-25
в этой сфере я не давно, еще учусь

есть смысл сходить на курсы, почитать книжки... А то пока больше на метод научного тыка похоже.
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152406
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господин ПЖOlga-25
в этой сфере я не давно, еще учусь

есть смысл сходить на курсы, почитать книжки... А то пока больше на метод научного тыка похоже.

курсы были
есть сертификат Профессионал
просто делаю, как наставник настоятельно советует...
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152461
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я вот это еше просмотрел - "реквизит". Если реквизит в отборе, то он должен быть индексирован в регистре
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152490
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господин ПЖа я вот это еше просмотрел - "реквизит". Если реквизит в отборе, то он должен быть индексирован в регистре

Это я проморгала...
Теперь выдает ошибку: Значение не является значением объектного типа (БалансоваяПринадлежность)
ТолькоСвои = Данные.Источник.БалансоваяПринадлежность;
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152529
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Olga-25
просто делаю, как наставник настоятельно советует...

не знаю... мне не нравится то, что он вам советует.

Запрос = Новый Запрос;
Запрос.Текст = "Выбрать
|
| НачислениеСФ.Источник,
| НачислениеСФ.Источник.БалансоваяПринадлежность
|
| ИЗ
|
| РегистрНакопления.НачислениеСФ КАК НачислениеСФ";

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

Если Рез.Пустой() Тогда
Возврат;
КонецЕсли;

Выборка = Рез.Выбрать();
Пока Выборка.Следующий() Цикл


Если Выборка.БалансоваяПринадлежность И ВидФормыОтчета = "3" Тогда

..............

ИначеЕсли НЕ Выборка.БалансоваяПринадлежность И ВидФормыОтчета = "4" Тогда

..............

КонецЕсли;


КонецЦикла;
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152538
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Olga-25Господин ПЖа я вот это еше просмотрел - "реквизит". Если реквизит в отборе, то он должен быть индексирован в регистре

Это я проморгала...
Теперь выдает ошибку: Значение не является значением объектного типа (БалансоваяПринадлежность)
ТолькоСвои = Данные.Источник.БалансоваяПринадлежность;

логично...

>>Данные=Начисление.Выбрать(НачДата,КонДата,Отбор);
>>ТолькоСвои = Данные.Источник.БалансоваяПринадлежность;

выборка есть, а где ее обход?

Данные=Начисление.Выбрать(НачДата,КонДата,Отбор);
Пока Данные.Следующий() Цикл
ТолькоСвои = Данные.Источник.БалансоваяПринадлежность;
КонецЦикла;
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152559
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя эта шиза какая-то... лазить в реквизит регистра накопления для формирования отчета...

он (реквизит) кстати повторяется наверное в регистре...

Запрос = Новый Запрос;
Запрос.Текст = "Выбрать
|
| ВложенныйЗапрос.Источник,
| ВложенныйЗапрос.Источник.БалансоваяПринадлежность
|
| ИЗ
| (Выбрать РАЗЛИЧНЫЕ
| ВложенныйЗапрос.Источник КАК Источник
| ИЗ
| РегистрНакопления.НачислениеСФ КАК НачислениеСФ) КАК ВложенныйЗапрос";
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152569
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>Данные=Начисление.Выбрать(НачДата,КонДата,Отбор);
>>ТолькоСвои = Данные.Источник.БалансоваяПринадлежность;

выборка есть, а где ее обход?

Данные=Начисление.Выбрать(НачДата,КонДата,Отбор);
Пока Данные.Следующий() Цикл
ТолькоСвои = Данные.Источник.БалансоваяПринадлежность;
КонецЦикла;[/quot]

Так выборка у меня есть
Только по справочнику...

Получается вот как: в справочнике ИсточникиТепла ищем записи где БалансоваяПринадлежность или истина или Ложь (для разных отчетов)
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152584
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Olga-25
Так выборка у меня есть
Только по справочнику...


ну да... а по регистру обход за вас - Пушкин делать будет? В этом и кривость исходного решения. Если нужно чисто по справочнику пройтись - зачем в регистр "нырять"? Если нужны только те элементы справочника, которые использовались в регистре - зачем обходить справочник?
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152680
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в Процедуру ПечатьОтпущеноТелпаКотельными не заходит((
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36152692
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Olga-25в Процедуру ПечатьОтпущеноТелпаКотельными не заходит((

если оставили так:

Выборка = Справочники.ИсточникиТепла.Выбрать();
Отбор = Новый Структура ("Источник",Выборка.Ссылка);
Пока Выборка.Следующий() Цикл
Данные=Начисление.Выбрать(НачДата,КонДата,Отбор);

то и не зайдет. суете "Выборка.Ссылка" в отбор, ходя обход выборки по справочнику еще не начинался
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36154484
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выборка = Справочники.ИсточникиТепла.Выбрать();
Пока Выборка.Следующий() Цикл
Отбор = Новый Структура ("Источник",Выборка.Ссылка);
Данные=РегистрыНакопления.НачислениеСФ.Обороты(НачДата,КонДата,Отбор,,);

Для Каждого ТекСтрока1 Из Данные Цикл
ТолькоСвои = ТекСтрока1.Источник.БалансоваяПринадлежность;
Если ТолькоСвои = Истина Тогда
ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ,ТолькоСвои,ТаблНачисления,ТаблНачисленияК,СразуНаПечать);

Сделала так, работает

Ном не еще нужно проверить, какая форма отчета выбрана (в диалоге размещены переключатели)
Пыталась сделать так: Если ТолькоСвои = Истина И ВидФормыОтчетаМ="3" Тогда
В этом случае в процедуру ПечатьФорма.. не заходит вообще..
Может я чего не так записываю??
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36154528
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
перепутала))
Если ВидФормыОтчетаМ="3" ИЛИ ВидФормыОтчета = "4" Тогда ..
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36154532
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во первых "Если ТолькоСвои = Истина" так писать не надо. Достаточно "Если ТолькоСвои И ..."

ну и есть мнение что ВидФормыОтчетаМ это число... отладчик это подтвердит наверное

т.о. имеем:


Если ТолькоСвои И ВидФормыОтчета = 3 Тогда

ИначеЕсли НЕ ТолькоСвои И ВидФормыОтчета = 4 Тогда

КонецЕсли;
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36154549
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот это тоже странно выглядит

ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ, ТолькоСвои=Истина ,ТаблНачисления,ТаблНачисленияК,СразуНаПечать);

ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ, ТолькоСвои=Ложь ,ТаблНачисления,ТаблНачисленияК,СразуНаПечать);

ибо при любом раскладе в функцию попадет "Истина"

в ветку условия "Иначе" попадает при ТолькоСвои=Ложь. И в ней условие ТолькоСвои=Ложь будет равно Истина. П.э. надо передавать так как есть - "ТолькоСвои". Переменная сама знает, "истина" она или "ложь":

ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ, ТолькоСвои ,ТаблНачисления,ТаблНачисленияК,СразуНаПечать);

ЗЫ увольнять надо за несоответствие вашего наставника. Вы лепите какую-то фихню, а куда он смотрит - не понятно...
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36154562
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то что истина можно опускать я знаю
но в данном случае это не принципиально
Значение переменной ТолькоСвои я ищу для двух форм, поэтому мне надо изначально поставить проверку на значение этой переменной
это я и пыталась сделать конструкцией
Если ВидФормыОтчетаМ="3" ИЛИ ВидФормыОтчета = "4" Тогда
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36154705
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну уволить его не надо
просто работы очень много, времени на обучение не хватает
вот и приходится самостоятельно тыкаться...
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36154710
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>то что истина можно опускать я знаю
но в данном случае это не принципиально

это принципиально, в функцию постоянно попадает "Истина"
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36155606
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я имею ввиду не принципиально в условии Если
...
Рейтинг: 0 / 0
Выборка по регистру накопления
    #36156168
Olga-25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще вопрос

Если ВидФормыОтчетаМ=3 ИЛИ ВидФормыОтчетаМ=4 Тогда
Пока 1=1 Цикл
Удалено=Ложь;
Для Каждого ТекСтр Из ТаблНачисления Цикл //1
Если ВидФормыОтчетаМ=3 Тогда
Если Не ТекСтр.Источник.БалансоваяПринадлежность Тогда
ТолькоСвои=Истина;
ТаблНачисления.Удалить(ТекСтр);
Удалено=Истина;
Прервать;
КонецЕсли;
ИначеЕсли ВидФормыОтчетаМ=4 Тогда
Если ТекСтр.Источник.БалансоваяПринадлежность Тогда
ТолькоСвои=Ложь;
ТаблНачисления.Удалить(ТекСтр);
Удалено=Истина;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если Не Удалено Тогда
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;

//1 Почему не заходит в цикл (для ВидФормыОтчетаМ=3 )
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / [игнор отключен] [закрыт для гостей] / Выборка по регистру накопления
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]