Имя: Пароль:
1C
1С v8
Как вытащить данные из регистра сведений по дате документа
,
0 ляляля9999
 
15.12.15
11:57
Есть регистр сведений и документ. В регистре сведений добавляю например период - 01.01.2015, ФИО- Иванов И.И.; период - 01.12.2015, ФИО - Сидоров А.А. В зависимости какая дата документа, то ФИО и должно подставляться в поле. Например дата документа 01.10.2015, значит должен подставиться Иванов И.И.

Подскажите, пожалуйста, как реализовать?
1 AllJoke
 
15.12.15
12:00
Плучай срезпослдених на дату документа.
2 Мимохожий Однако
 
15.12.15
12:00
Опиши структуру регистра. Для периодического можно использовать срез последних
3 ляляля9999
 
15.12.15
12:20
пишу такой запрос:

ВЫБРАТЬ
    ОтветственныеЛицаПодразделенийСрезПоследних.ФизическоеЛицо,
    ОтветственныеЛицаПодразделенийСрезПоследних.ПодразделениеОрганизации
ИЗ
    РегистрСведений.ОтветственныеЛицаПодразделений.СрезПоследних КАК ОтветственныеЛицаПодразделенийСрезПоследних
ГДЕ
       ОтветственныеЛицаПодразделенийСрезПоследних.ОтветственноеЛицо.Ссылка = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Исполнитель
4 ляляля9999
 
15.12.15
12:21
(2) переодичность В пределах секунды
5 Мэс33
 
15.12.15
12:22
(3) Конфа какая? В типовой  есть функция в глобальнике, которая возвращает ответственных лиц на дату.
Например, можешь поискать в кассовых документах.
6 ляляля9999
 
15.12.15
12:23
(1) есть пример как это можно сделать, срезпоследних получила, а как на дату сделать без понятия
7 The_SpecialOne
 
15.12.15
12:24
(3) в запросе не хватает параметров виртуальной таблицы. Добавь туда ограничение по дате
8 ляляля9999
 
15.12.15
12:24
(5) Бухгалтерия предприятия, редакция 2.0 (2.0.19.103) Из документа РеализацияТоваровИУслуг
9 Джинн
 
15.12.15
12:26
10 Мэс33
 
15.12.15
12:27
(8) Поищи функцию, типа как в нашей:

Руководители = ОбщегоНазначения.ОтветственныеЛицаОрганизаций(СтруктурнаяЕдиницаОрганизация, КонецДня(Дата),);
11 Мэс33
 
15.12.15
12:29
(10) В нашей типовой:

        ЗапросПоЛицам = Новый Запрос();
        ЗапросПоЛицам.УстановитьПараметр("Организация", Организация);
        ЗапросПоЛицам.УстановитьПараметр("ДатаСреза",   ДатаСреза);
        ЗапросПоЛицам.Текст = "
        |ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо,
        |    ОтветственныеЛицаОрганизацииСрезПоследних.Должность.Наименование КАК Должность,
        |    ОтветственныеЛицаОрганизацииСрезПоследних.Должность КАК ДолжностьСсылка,
        |   ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо КАК ФизЛицо,
        |    ВЫБОР
        |        КОГДА (ФИОФизЛицСрезПоследних.ФизЛицо) ЕСТЬ NULL  
        |            ТОГДА ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо.Наименование
        |        ИНАЧЕ ФИОФизЛицСрезПоследних.Фамилия + ВЫБОР
        |                                                    КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Имя, 1, 1) <> """"
        |                                                        ТОГДА "" "" + ПОДСТРОКА(ФИОФизЛицСрезПоследних.Имя, 1, 1) + "".""
        |                                                    ИНАЧЕ """"
        |                                                КОНЕЦ + ВЫБОР
        |                                                            КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Отчество, 1, 1) <> """"
        |                                                                ТОГДА "" "" + ПОДСТРОКА(ФИОФизЛицСрезПоследних.Отчество, 1, 1) + "".""
        |                                                            ИНАЧЕ """"
        |                                                        КОНЕЦ
        |    КОНЕЦ КАК ФИОПолное
        |ИЗ
        |    РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних(
        |                    &ДатаСреза,
        |                    СтруктурнаяЕдиница = &Организация) КАК ОтветственныеЛицаОрганизацииСрезПоследних
        |    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&ДатаСреза, ) КАК ФИОФизЛицСрезПоследних
        |        ПО ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо = ФИОФизЛицСрезПоследних.ФизЛицо";
        Выборка = ЗапросПоЛицам.Выполнить().Выбрать();
12 ляляля9999
 
15.12.15
12:30
(11) спасибо, попробую
13 ляляля9999
 
15.12.15
12:31
(9) спасибо
14 Мэс33
 
15.12.15
12:37
(12) см (7)
это делается тут:

ИЗ  РегистрСведений.ОтветственныеЛицаПодразделений.СрезПоследних(&ДатаСреза)
15 Мэс33
 
15.12.15
12:37
(12) "в нашей" - это не в российской, имел ввиду )))
16 ляляля9999
 
15.12.15
13:04
(14) спасибо, получилось в консоле запросов. а ДатаСреза как определить?
ДатаСреза = Документы.РеализацияТоваровУслуг.Дата;
    Запрос.УстановитьПараметр("ДатаСреза",   ДатаСреза);
17 Мэс33
 
15.12.15
13:05
(16) Там будет дата твоего документа. Насколько я понял.
18 Мэс33
 
15.12.15
13:06
(16) По хорошему тебе сюда надо и другие параметры вставить помимо датысреза:
ИЗ  РегистрСведений.ОтветственныеЛицаПодразделений.СрезПоследних(&ДатаСреза)

Фильтр по организации/подразделению.
19 ляляля9999
 
15.12.15
13:07
(17) Запрос = Новый Запрос;
    ДатаСреза = Документы.РеализацияТоваровУслуг.Дата;
    Запрос.УстановитьПараметр("ДатаСреза",   ДатаСреза);
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ОтветственныеЛицаПодразделенийСрезПоследних.ФизическоеЛицо,
        |    ОтветственныеЛицаПодразделенийСрезПоследних.ПодразделениеОрганизации
        |ИЗ
        |    РегистрСведений.ОтветственныеЛицаПодразделений.СрезПоследних(&ДатаСреза, ) КАК ОтветственныеЛицаПодразделенийСрезПоследних
        |ГДЕ
        |    (ОтветственныеЛицаПодразделенийСрезПоследних.ПодразделениеОрганизации.Наименование = ""ООО""
                                    И ОтветственныеЛицаПодразделенийСрезПоследних.ОтветственноеЛицо.Ссылка = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Исполнитель))";
        
            
    РезультатЗапроса = Запрос.Выполнить();
20 ляляля9999
 
15.12.15
13:08
в консоле запросов работает верно, пробую на базе пусто
21 Мэс33
 
15.12.15
13:09
(20) отладчиком посмотри - что у тебя в ДатаСреза.
22 Мэс33
 
15.12.15
13:09
(20) Вот это вообще что?
ДатаСреза = Документы.РеализацияТоваровУслуг.Дата;
23 Мэс33
 
15.12.15
13:09
(20) Откуда вызываешь запрос?
24 ляляля9999
 
15.12.15
13:10
(21) а во внешней обработке можно отладчиком посмотреть?
25 Мэс33
 
15.12.15
13:11
(24) Можно - это раз.
Второе - что такое в (0) "В зависимости какая дата документа"??? Откуда документ берется?
26 ляляля9999
 
15.12.15
13:13
(25) по документу, вывожу печатную форму, а там уже в зависимости какая дата берется ФИО из регистра сведений
27 Мэс33
 
15.12.15
13:14
(26) Так передай дату конкретного документа, а не Документы.РеализацияТоваровУслуг.Дата;
28 ICWiner
 
15.12.15
13:14
Если внешнюю печатную форму - попробуй поставить в дату среза СсылкаНаОбъект.Дата
29 ICWiner
 
15.12.15
13:15
Странно что ошибка не вываливалась в
ДатаСреза = Документы.РеализацияТоваровУслуг.Дата;
30 Мэс33
 
15.12.15
13:19
(24) Внешнюю печатную форму, чтобы отладчиком смотреть, надо немного переделать: на форму вынести реквизит объектдокумента. Кажется так назывался. И дальше тестишь как обычную обработку, проходишь отладчиком, предварительно выбрав нужны документе на форме.
31 ляляля9999
 
15.12.15
13:23
ураааа, все получилось! всем спасибо!
32 Мэс33
 
15.12.15
13:25
(31) Это понятно.
Главное - поняла как указывать параметры для виртуальных таблиц? И что такое - виртуальные таблицы?
33 ляляля9999
 
15.12.15
13:28
(32) да, теперь поняла, спасибо
34 Мэс33
 
15.12.15
13:29
(33) И что такое - виртуальные таблицы? Расскажи )))
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.