Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Существующая запись регистра сведений не отбирается запросом.

Существующая запись регистра сведений не отбирается запросом.
Я
   Shantaram
 
22.12.20 - 13:06
В регистре три записи(в процессе отладки).
Простой код:

    Запрос.Текст = "ВЫБРАТЬ
        |    джс_НоминалыПовторноАктивированныхПодарочныхСертификатов.Регистратор КАК Регистратор
        |ИЗ
        |    РегистрСведений.джс_НоминалыПовторноАктивированныхПодарочныхСертификатов КАК джс_НоминалыПовторноАктивированныхПодарочныхСертификатов
        |ГДЕ
        |    ВЫРАЗИТЬ(джс_НоминалыПовторноАктивированныхПодарочныхСертификатов.Регистратор КАК Документ.ЧекККМ) = &Регистратор";
    Запрос.УстановитьПараметр("Регистратор", Источник.Ссылка);
    Результат = Запрос.Выполнить() ;

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

Регистр подчинен регистратору: Чек ККМ и Реализация товаров услуг.
Код выполняется в обработчике подписки на событии ОбработкаПроведения.
   mikecool
 
1 - 22.12.20 - 13:08
Условие без выразить пробовал?
   mikecool
 
2 - 22.12.20 - 13:09
иначе - условие неверное, регистратор не тот
   Shantaram
 
3 - 22.12.20 - 13:10
Дык вообще без условия пробовал - в выборке нету нужной записи, а в регистре есть.
   Kassern
 
4 - 22.12.20 - 13:11
(2) джс_НоминалыПовторноАктивированныхПодарочныхСертификатов.Регистратор КАК Документ.ЧекККМ дает тебе истину или ложь, не более того
Пиши просто джс_НоминалыПовторноАктивированныхПодарочныхСертификатов.Регистратор=&Регистратор
   Shantaram
 
5 - 22.12.20 - 13:11
Регистратор - тот. Проверял и по коду и по дате.
это мои тестовые документы. Тот )
   Kassern
 
6 - 22.12.20 - 13:12
(3) чудес не бывает, открой консоль запросов и воткни туда просто выбор полей из твоего региста без отборов и убедись что там есть нужная тебе строчка
   Kassern
 
7 - 22.12.20 - 13:13
(6) если будешь убеждать, что строчки нет, сделай скриншот нужной тебе строчки из таблицы и скриншот результата запроса из консоли с текстом запроса
   Shantaram
 
8 - 22.12.20 - 13:36
(7) - сделаю.

Но уже и так делал:
НаборЗаписей = РегистрыСведений.джс_НоминалыПовторноАктивированныхПодарочныхСертификатов.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.регистратор.Установить(Источник.Ссылка);
    НаборЗаписей.Прочитать();

Наборзаписей.Количество() = 0 

Список регистра:
https://ibb.co/FVt84n1

Результат в консоли запросов:
https://ibb.co/2tcFhg2

Параметр:
https://ibb.co/Rp6Qkq2

Ну и после выполнения Результат.Пустой() = истина

В консоли отбирается, в процедуре - нет.
   ДенисЧ
 
9 - 22.12.20 - 13:37
Отсюда вывод. В процедуре ты задаёшь не тот документ
   Shantaram
 
10 - 22.12.20 - 13:39
Тот
https://ibb.co/b2r8bp6

С таким номером больше нет чеков.
И я же этот документ провожу, в обработчик подписки передается переменная Источник - как раз этот чек.
   Shantaram
 
11 - 22.12.20 - 13:40
(9) Мситка какая-то. Решил на мисту обратиться :-)
   Kassern
 
12 - 22.12.20 - 13:48
(11) ахахах, я кажись понял в чем твоя проблема)) У тебя поди регистр привязан к документу, а в документе идет автоматическое удаление движений. Ты когда вызываешь свой запрос у тебя данной проводки нет, но после записи она появляется. Никакой мистики мисье
   Shantaram
 
13 - 22.12.20 - 13:55
(12) Да, привязан. К реализации и ЧекуККМ
но в обоих документах удаление движений установлено Не удалять автоматически.
   Shantaram
 
14 - 22.12.20 - 13:55
(12) Это первое, что проерил.
   Shantaram
 
15 - 22.12.20 - 13:58
(12) В обработке проведения документа про , добавленный мной, регистр, разумеется, ни слова - ни строчки. Для этого и создал подписку, что бы не трогать модуль документа.
   hhhh
 
16 - 22.12.20 - 13:59
(14) проверь ручное удаление движений там
   Shantaram
 
17 - 22.12.20 - 14:08
(16) Про ручное удаление не в курсе.
Имел в виду какую-то настройку в свойствах документа или обработку проведения?
   Kassern
 
18 - 22.12.20 - 14:13
(15) подписка привязана к какому событию?
   Малыш Джон
 
19 - 22.12.20 - 14:48
(8) Запусти два сеанса. В одном, в отладке поставь точку останова на строке Запрос.Выполнить(), останови отладку на этой точке. В другом сеансе в консоли проверь наличие в этот момент записи в регистре.
   Shantaram
 
20 - 22.12.20 - 15:13
Получается, что ситуация такая:
В из обработке проведения документа вызывается ПодготовитьНаборыЗаписейКРегистрацииДвижений из общего модуля,
в которой в транзакции очищаются все движения документа. Соответственно удаляется движение из моего регистра.
Не учел того, что типовой функционал поработает и с добавленным регистром.
   Kassern
 
21 - 22.12.20 - 15:23
(20) как и писал, чудес не бывает...


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.