8.х Заполнение ТЧ

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ekaterinaku, 19 авг 2016.

  1. TopicStarter Overlay
    ekaterinaku
    Offline

    ekaterinaku

    Регистрация:
    19 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Есть Документ Возврат Книг, необходимо,чтобы при выборе читателя в ТЧ из РегистраСведений по срезу последних заносились все его не сданные книги.
    РегистрСведений измерения-номерКниги,ресурсы-читатель и состояние книги
    Дошла вот до этого,дальше не понимаю

    &НаСервере
    Функция ПолучитьКниги (Читатель)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ

    | СостояниеКнигСрезПоследних.Читатель,
    | СостояниеКнигСрезПоследних.Состояние
    ИЗ
    | РегистрСведений.СостояниеКниг.СрезПоследних КАК СостояниеКнигСрезПоследних
    |ГДЕ
    |СостояниеКнигСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостояниеКниги.Выдана)" ;
    Запрос.УстановитьПараметр("Читатель",Читатель);
    РезультатЗапроса = Запрос.Выполнить().Выбрать();
    Для каждого СТР из РезультатЗапроса Цикл
    НоваяСтрока = объект.Книги.Добавить();
    КонецЦикла;
    КонецФункции
  2. Николаич87
    Offline

    Николаич87 Опытный в 1С

    Регистрация:
    1 апр 2015
    Сообщения:
    122
    Симпатии:
    4
    Баллы:
    29
    неверно спроектирован РС. Я бы сделал так - изм. Читатель, Книга, ресурс - Состояние. ИЛИ РН КнигиУЧитателя - изм. Читатель, Книга, рес. Состояние.
    В Вашем случае Читатель - ресурс, по нему накладывается условие в запросе - не есть хорошо

    Код:
    Для каждого СТР из РезультатЗапроса Цикл 
    ЗаполнитьЗначенияСвойств(Объект.Книги.Добавить(), СТР);
    КонецЦикла;
    Соответственно, имена полей в ТЧ должны совпадать с именами в выборке
  3. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Я бы так не делал, поскольку теряется логический смысл регистра.
    В таком регистре возможна ситуация когда одна книга находится у двух читателей одновременно. Но такого ведь не может быть по логике.
  4. Николаич87
    Offline

    Николаич87 Опытный в 1С

    Регистрация:
    1 апр 2015
    Сообщения:
    122
    Симпатии:
    4
    Баллы:
    29
    эту возможность можно отсекать в модуле набора записей регистра простеньким запросом.
    Да и на стадии подбора книги для выдачи показывать инфу о состоянии книги или вообще запретить выбирать выданные книги. Это уже интерфейсные задачи - не по теме ))
  5. TopicStarter Overlay
    ekaterinaku
    Offline

    ekaterinaku

    Регистрация:
    19 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Читатель это реквизит документа в данной ситуации и необходимо чтобы при изменении этого реквизита заполнялась ТЧ с книгами
    --- Объединение сообщений, 19 авг 2016 ---
    Читатель это реквизит документа в данной ситуации и необходимо чтобы при изменении этого реквизита заполнялась ТЧ с книгами
  6. Николаич87
    Offline

    Николаич87 Опытный в 1С

    Регистрация:
    1 апр 2015
    Сообщения:
    122
    Симпатии:
    4
    Баллы:
    29
    &НаСервере
    Функция ПолучитьКниги (Читатель)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ

    | СостояниеКнигСрезПоследних.Книга,
    | СостояниеКнигСрезПоследних.Состояние
    ИЗ
    | РегистрСведений.СостояниеКниг.СрезПоследних КАК СостояниеКнигСрезПоследних(,Читатель = &Читатель И Состояние = ЗНАЧЕНИЕ(Перечисление.СостояниеКниги.Выдана))" ;

    Запрос.УстановитьПараметр("Читатель",Читатель);

    РезультатЗапроса = Запрос.Выполнить().Выбрать();
    Для каждого СТР из РезультатЗапроса Цикл
    ЗаполнитьЗначенияСвойств(объект.Книги.Добавить(), СТР);
    КонецЦикла;
    КонецФункции
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Хм.. Ну и для чего огород городить? Писать какие-то программные проверки, когда это организовано на уровне платформы?

    И вообще не совсем пока понял в чем проблема?
    --- Объединение сообщений, 19 авг 2016 ---
    угу.. только я бы еще дату документа в запрос передал.
  8. TopicStarter Overlay
    ekaterinaku
    Offline

    ekaterinaku

    Регистрация:
    19 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Нужно чтобы ТЧ документа из регистра сведений по определенным условиям заполнялась при изменении реквизита этого документа,
    --- Объединение сообщений, 19 авг 2016 ---
    Не работает это
    Последнее редактирование: 19 авг 2016
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    А развернуть ответ?
    Что не работает? Выдает ошибку? Выборка пустая? Строки не заполняются?
  10. TopicStarter Overlay
    ekaterinaku
    Offline

    ekaterinaku

    Регистрация:
    19 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Строки не заполняются, но ошибок никаких не выдает
  11. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Выборка из результата запроса соответствует ожиданиям?
  12. TopicStarter Overlay
    ekaterinaku
    Offline

    ekaterinaku

    Регистрация:
    19 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    нет
  13. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    уххх...

    почему? что с ней не так? она пустая? или наоборот в ней записи, которых не должно быть?
  14. TopicStarter Overlay
    ekaterinaku
    Offline

    ekaterinaku

    Регистрация:
    19 авг 2016
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    данная выборка не выдает нужных результат (ничего не выдает,а должно быть 2 строки в ТЧ)
  15. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    возьмите консоль запросов и отладьте в ней запрос.

Поделиться этой страницей