Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрос по ОЛЕ не читает значение "булево"          
Мичман Харитонов Подменю пользователя
сообщение 22.07.19, 10:26
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 164
Из: м. Кам'янське
Спасибо сказали: 26 раз
Рейтинг: 0

Доброго дня!
Бухгалтерия для Украины 1.2, платформа 8.3.7.1860
Обращаюсь запросом по ОЛЕ к самописной учетной базе, платформа та же.

Запрос
В8 = Новый COMОбъект("V83.Application");
.........
Если Истина Тогда
            ЗапросОЛЕ = В8.NewObject("Запрос");

ТекстЗапроса = "ВЫБРАТЬ
            |        ТоварыНаСкладеОстатки.Номенклатура КАК Номенклатура,
            |        ТоварыНаСкладеОстатки.Номенклатура.Наименование КАК НоменклатураНаименование,
            |        ТоварыНаСкладеОстатки.Номенклатура.КодСТочкой КАК КодСТочкой,
            |        ТоварыНаСкладеОстатки.Склад.КодСклада КАК Склад,
            |        ТоварыНаСкладеОстатки.Склад.Наименование КАК СкладНаименование,
            |        ТоварыНаСкладеОстатки.КоличествоОстаток КАК ОстатокУпр,
            |        ТоварыНаСкладеОстатки.СуммаОстаток КАК СебестоимостьУпр
            |    ИЗ
            |        РегистрНакопления.ТоварыНаСкладе.Остатки("+
            ?(ДатаСравнения = '00010101',"","
            |                &Дата")+", Истина"+
            ?(Склад.Пустая(),""," И Склад.КодСклада  = &КодСклада") + "
            |                И Склад.ВидУчета <> &ВидУчета
            |                И Склад.НеПоказыватьВБухгалтерии = &НеПоказыватьВБухгалтерии
            |                И Фирма.КодОрганизации  = &КодБухОрганизации" +
            ?(Номенклатура.Пустая(),"","
            |                И Номенклатура В Иерархии(&Номенклатура)") + "
            |) КАК ТоварыНаСкладеОстатки" +
            
            ?(Склад.Пустая() или Склад = Справочники.Склады.ТоварыВПути,"
            |
            |ОБЪЕДИНИТЬ ВСЕ
            |
            |ВЫБРАТЬ
            |        ТоварыВПутиОстатки.Номенклатура,
            |        ТоварыВПутиОстатки.Номенклатура.Наименование,
            |        ТоварыВПутиОстатки.Номенклатура.КодСТочкой КАК КодСТочкой,
            |        ""000000000"" КАК Склад,
            |        ""Товары в пути"" КАК СкладНаименование,
            |        ТоварыВПутиОстатки.КоличествоОстаток,
            |        ТоварыВПутиОстатки.СуммаОстаток
            |    ИЗ
            |        РегистрНакопления.ТоварыВПути.Остатки("+
            ?(ДатаСравнения = '00010101',"","
            |                &Дата")+", Фирма.КодОрганизации  = &КодБухОрганизации" +
            ?(Номенклатура.Пустая(),"","
            |                И Номенклатура В Иерархии(&Номенклатура)") + "
            |                И Склад.НеПоказыватьВБухгалтерии = &НеПоказыватьВБухгалтерии
            |) КАК ТоварыВПутиОстатки", "");

            
            ЗапросОЛЕ.Текст = ТекстЗапроса;
            ЗапросОЛЕ.УстановитьПараметр("Дата", ДатаСравнения);
            ЗапросОЛЕ.УстановитьПараметр("КодБухОрганизации", Организация.Код);
            ЗапросОЛЕ.УстановитьПараметр("ВидУчета", В8.Перечисления.ВидыУчета.Торговля);
            ЗапросОЛЕ.УстановитьПараметр("НеПоказыватьВБухгалтерии", ЛОЖЬ);


Спотыкается на булевом значении, Склад.НеПоказыватьВБухгалтерии.
Ошибка
"{Отчет.СравнениеОстатковТоваровБухИУпр.МодульОбъекта(173)}: Ошибка при вызове метода контекста (Выполнить)
Результат = ЗапросОЛЕ.Выполнить();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.7.1860): {(30, 7)}: Поле не найдено "Склад.НеПоказыватьВБухгалтерии"
И <<?>>Склад.НеПоказыватьВБухгалтерии = &НеПоказыватьВБухгалтерии
" Поле точно есть, имя правильное. Что я не так-то делаю?

Сообщение отредактировал Vofka - 22.07.19, 12:23

Petre Подменю пользователя
сообщение 22.07.19, 10:30
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Мичман Харитонов @ Today, 10:26 * ,
... ""000000000"" КАК Склад ...


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Мичман Харитонов Подменю пользователя
сообщение 22.07.19, 10:32
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 164
Из: м. Кам'янське
Спасибо сказали: 26 раз
Рейтинг: 0

Petre @ Сегодня, 11:30 * ,
Эта конструкция работает.
Отчет был написан задолго до меня, я пытаюсь добавить отбор по реквизиту "НеПоказыватьВБухгалтерии"

Petre Подменю пользователя
сообщение 22.07.19, 10:32
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

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


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Мичман Харитонов Подменю пользователя
сообщение 22.07.19, 10:45
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 164
Из: м. Кам'янське
Спасибо сказали: 26 раз
Рейтинг: 0

В источнике показывает, только при выводе булево представляет как да/нет

daveal Подменю пользователя
сообщение 22.07.19, 10:53
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 70
Из: Киев
Спасибо сказали: 25 раз
Рейтинг: 0

Мне кажеться, Вы смотрите первый запрос, а склада у Вас нет во втором. В РН ТоварыВПути точно есть измерение Склад?

takefive Подменю пользователя
сообщение 22.07.19, 11:04
Сообщение #7

Говорящий
***
Группа: Пользователи
Сообщений: 60
Из: Днепропетровск
Спасибо сказали: 22 раз
Рейтинг: 23.2

а без параметра?
И НЕ Склад.НеПоказыватьВБухгалтерии



Signature
без свинга нет музыки...

Vladal Подменю пользователя
сообщение 22.07.19, 16:13
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 365
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 0

Цитата(Мичман Харитонов @ 22.07.19, 11:26) *
И <<?>>Склад.НеПоказыватьВБухгалтерии = &НеПоказыватьВБухгалтерии
" Поле точно есть, имя правильное. Что я не так-то делаю?

Во втором запросе присоединяется необъектный тип Строка
""000000000"" КАК Склад,

Соответственно, у строки "00000000" нет поля НеПоказыватьВБухгалтерии
Это справедливо и для первой части запроса - на выходе литерал с кодом склада, а не ссылка на справочник Склады.

Советую присоединять не нолики, а пустую ссылку типа склад:
Значение(Справочник.Склады.ПустаяСсылка) как СкладСсылка
Либо поле НеПоказыватьВБухгалтерии вывести дополнительно в запросе - чтобы каждый раз не дергать соединение со справочником Склады, как это сделано с наименованием: Номенклатура.Наименование, код с точкой и другие реквизиты:

|        ТоварыНаСкладеОстатки.Номенклатура.Наименование КАК НоменклатураНаименование,
|        ТоварыНаСкладеОстатки.Номенклатура.КодСТочкой КАК КодСТочкой,
|        ТоварыНаСкладеОстатки.Склад КАК СкладСсылка,
|        ТоварыНаСкладеОстатки.Склад.КодСклада КАК Склад,
|        ТоварыНаСкладеОстатки.Склад.НеПоказыватьВБухгалтерии КАК СкладНеПоказыватьВБухгалтерии,
|        ТоварыНаСкладеОстатки.Склад.Наименование КАК СкладНаименование,
...

|        ТоварыВПутиОстатки.Номенклатура.КодСТочкой КАК КодСТочкой,
|        Значение(Справочник.Склады.ПустаяСсылка) как СкладСсылка,
|        ""000000000"" КАК Склад,
|        Истина КАК СкладНеПоказыватьВБухгалтерии, // или Ложь, что там надо по умолчанию
|        ""Товары в пути"" КАК СкладНаименование,
|        ТоварыВПутиОстатки.КоличествоОстаток,


И с условиями будет все ОК.
В первой части запроса ОК и так, а во второй условие "И Склад.НеПоказыватьВБухгалтерии = &НеПоказыватьВБухгалтерии" привести в соответствии с логикой "склада ТоварыВПути по умолчанию" - если он не отражается в БУ, то и не надо присоединять вторую часть запроса.

Цитата(Мичман Харитонов @ 22.07.19, 11:45) *
В источнике показывает, только при выводе булево представляет как да/нет

Это "бантики" визуализации. Не обращайте внимание.

mut Подменю пользователя
сообщение 22.07.19, 18:43
Сообщение #9

Завсегдатай
****
Группа: Пользователи
Сообщений: 199
Из: Новая Каховка
Спасибо сказали: 203 раз
Рейтинг: 237.5

А в регистре ТоварыВПути точно есть измерение Склад? Он как-бы нелогичен там.

Vladal Подменю пользователя
сообщение 23.07.19, 8:49
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 365
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 0

Цитата(mut @ 22.07.19, 19:43) *
А в регистре ТоварыВПути точно есть измерение Склад? Он как-бы нелогичен там.

А его как бы нулями забивают. "00000000" как Склад

Там некорректно составлен запрос под конкретную задачу.

alex1c Подменю пользователя
сообщение 26.07.19, 21:36
Сообщение #11

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 235
Спасибо сказали: 45 раз
Рейтинг: 40

Думаю надо копать в эту сторону:
ЗапросОЛЕ.УстановитьПараметр("НеПоказыватьВБухгалтерии", В8.ЛОЖЬ);

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 19:58
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!