Выбрать дату регистратора регистра накопления

1. DENSKR 15 12.11.20 15:12 Сейчас в теме
Не получается вытянуть дату регистратора в обход отбору по дате. Например если дата регистратора ранее даты отбора то крушится ошибкой "Преобразование значения к типу Дата не может быть выполнено"
Сам запрос:
	Запрос = Новый Запрос;
	Запрос.Текст = 
	    "ВЫБРАТЬ
	    |	БланкиЗБ_.ЗалоговыйБилет КАК ЗалоговыйБилет,
	    |	БланкиЗБ_.ЗалоговыйБилет.Код КАК Код,
	    |	БланкиЗБ_.ПричинаСписания КАК ПричинаСписания,
	    |	БланкиЗБ_.Организация КАК Организация,
	    |	БланкиЗБ_.Филиал КАК Филиал,
	    |	БланкиЗБ_.КоличествоПриход КАК КоличествоПриход,
	    |	БланкиЗБ_.КоличествоРасход КАК КоличествоРасход,
	    |	БланкиЗБ_.Регистратор КАК Регистратор,
		|	БланкиЗБ_.Регистратор.Дата КАК Дата,
	    |	БланкиЗБ_.ЗалоговыйБилет.Залогодатель КАК Залогодатель,
	    |	БланкиЗБ_.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
	    |	БланкиЗБ_.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
	    |ИЗ
	    |	РегистрНакопления.ЛМБ_БланкиЗалоговыхБилетов.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Регистратор, , Филиал = &Филиал) КАК БланкиЗБ_
	    |
	    |СГРУППИРОВАТЬ ПО
	    |	БланкиЗБ_.ПричинаСписания,
	    |	БланкиЗБ_.Филиал,
	    |	БланкиЗБ_.ЗалоговыйБилет,
	    |	БланкиЗБ_.Организация,
	    |	БланкиЗБ_.Регистратор,
		|   БланкиЗБ_.Регистратор.Дата,
	    |	БланкиЗБ_.ЗалоговыйБилет.Код,
	    |	БланкиЗБ_.КоличествоПриход,
	    |	БланкиЗБ_.КоличествоРасход,
	    |	БланкиЗБ_.ЗалоговыйБилет.Залогодатель,
	    |	БланкиЗБ_.КоличествоНачальныйОстаток,
	    |	БланкиЗБ_.КоличествоКонечныйОстаток";
	Запрос.УстановитьПараметр("ДатаНачала", Объект.ДатаНачала);
	Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(Объект.ДатаОкончания));
	Запрос.УстановитьПараметр("Филиал", Объект.Филиал);
	
	РезультатЗапроса = Запрос.Выполнить().Выгрузить();
	Возврат РезультатЗапроса;
Показать

Прошу помощи уважаемых знатоков!
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
50. DanDy 52 13.11.20 16:56 Сейчас в теме +2 $m
(48) Ну вот накидал по-быстрому на регистре "ТоварыНаСкладах"

"ВЫБРАТЬ
|	ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
|	ТоварыНаСкладахОстаткиИОбороты.Характеристика КАК Характеристика,
|	ТоварыНаСкладахОстаткиИОбороты.Назначение КАК Назначение,
|	ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
|	ТоварыНаСкладахОстаткиИОбороты.Помещение КАК Помещение,
|	ТоварыНаСкладахОстаткиИОбороты.Серия КАК Серия,
|	ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток,
|	ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток
|ПОМЕСТИТЬ ОстаткиЗаПериод
|ИЗ
|	РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК ТоварыНаСкладахОстаткиИОбороты
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|	ТоварыНаСкладахОбороты.Номенклатура КАК Номенклатура,
|	ТоварыНаСкладахОбороты.Характеристика КАК Характеристика,
|	ТоварыНаСкладахОбороты.Назначение КАК Назначение,
|	ТоварыНаСкладахОбороты.Склад КАК Склад,
|	ТоварыНаСкладахОбороты.Помещение КАК Помещение,
|	ТоварыНаСкладахОбороты.Серия КАК Серия,
|	МАКСИМУМ(ТоварыНаСкладахОбороты.Регистратор.Дата) КАК ДатаРегистратора
|ПОМЕСТИТЬ ДатыПоследнихРегистраторов
|ИЗ
|	РегистрНакопления.ТоварыНаСкладах.Обороты(
|			,
|			,
|			Регистратор,
|			(Номенклатура, Характеристика, Назначение, Склад, Помещение, Серия) В
|				(ВЫБРАТЬ
|					ОстаткиЗаПериод.Номенклатура КАК Номенклатура,
|					ОстаткиЗаПериод.Характеристика КАК Характеристика,
|					ОстаткиЗаПериод.Назначение КАК Назначение,
|					ОстаткиЗаПериод.Склад КАК Склад,
|					ОстаткиЗаПериод.Помещение КАК Помещение,
|					ОстаткиЗаПериод.Серия КАК Серия
|				ИЗ
|					ОстаткиЗаПериод КАК ОстаткиЗаПериод)) КАК ТоварыНаСкладахОбороты
|
|СГРУППИРОВАТЬ ПО
|	ТоварыНаСкладахОбороты.Помещение,
|	ТоварыНаСкладахОбороты.Серия,
|	ТоварыНаСкладахОбороты.Назначение,
|	ТоварыНаСкладахОбороты.Склад,
|	ТоварыНаСкладахОбороты.Характеристика,
|	ТоварыНаСкладахОбороты.Номенклатура
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|	ОстаткиЗаПериод.Номенклатура КАК Номенклатура,
|	ОстаткиЗаПериод.Характеристика КАК Характеристика,
|	ОстаткиЗаПериод.Назначение КАК Назначение,
|	ОстаткиЗаПериод.Склад КАК Склад,
|	ОстаткиЗаПериод.Помещение КАК Помещение,
|	ОстаткиЗаПериод.Серия КАК Серия,
|	ОстаткиЗаПериод.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток,
|	ОстаткиЗаПериод.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток,
|	ДатыПоследнихРегистраторов.ДатаРегистратора КАК ДатаРегистратора
|ИЗ
|	ОстаткиЗаПериод КАК ОстаткиЗаПериод
|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатыПоследнихРегистраторов КАК ДатыПоследнихРегистраторов
|		ПО ОстаткиЗаПериод.Номенклатура = ДатыПоследнихРегистраторов.Номенклатура
|			И ОстаткиЗаПериод.Характеристика = ДатыПоследнихРегистраторов.Характеристика
|			И ОстаткиЗаПериод.Назначение = ДатыПоследнихРегистраторов.Назначение
|			И ОстаткиЗаПериод.Склад = ДатыПоследнихРегистраторов.Склад
|			И ОстаткиЗаПериод.Помещение = ДатыПоследнихРегистраторов.Помещение
|			И ОстаткиЗаПериод.Серия = ДатыПоследнихРегистраторов.Серия"
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 12.11.20 15:40 Сейчас в теме
(1)
Например если дата регистратора ранее даты отбора то крушится ошибкой "Преобразование значения к типу Дата не может быть выполнено"


В каком месте крушится с ошибкой: КонецДня(Объект.ДатаОкончания)?
karamazoff; +1 Ответить
3. karamazoff 96 12.11.20 15:41 Сейчас в теме
(1)на какой строке падает? на Запрос.Выполнить или на Запрос.УстановитьПараметр?
что есть Объект?
5. DENSKR 15 12.11.20 15:44 Сейчас в теме
(3) Объект это РеквизитФормыВЗначение
4. DENSKR 15 12.11.20 15:42 Сейчас в теме
Ошибка на
Для каждого СтрокаТаб из РезультатЗапроса Цикл
ДатаД =СтрокаТаб.Дата;
КонецЦикла;
6. karamazoff 96 12.11.20 15:44 Сейчас в теме
(4)а вы нам этот код и не показывали, а отладчик при остановке по ошибке что говорит?
8. DENSKR 15 12.11.20 15:45 Сейчас в теме
(6)"Выбрать дату регистратора регистра накопления"
7. Fox-trot 158 12.11.20 15:44 Сейчас в теме
(4)а что тогда служит регистратором? если дата равна null
11. nomad_irk 76 12.11.20 15:46 Сейчас в теме
(7)Ничего, это же таблица остатков и оборотов, в которой есть строки начальных и конечных остатков, которые с регистратором = NULL
9. nomad_irk 76 12.11.20 15:45 Сейчас в теме
(4)Крашится с ошибкой потому, что СтрокаТаб.Дата не является значением типа Дата, а является значением NULL/Неопределено
Вы саму ТЗ проверьте визуально в отладчике
10. DENSKR 15 12.11.20 15:46 Сейчас в теме
(9)Да потому что регистратора нет в отборе между "ДатаНачала И ДатаОкончания"
12. karamazoff 96 12.11.20 15:49 Сейчас в теме
(10)ну и сделайте проверку на null, можно в запросе, можно в коде цикла.
13. DENSKR 15 12.11.20 15:50 Сейчас в теме
(12)А толку от проверки, если мне нужно вытянуть дату не смотря на то что стоит отбор по периоду и дата регистратора может не входит в этот отбор.
15. karamazoff 96 12.11.20 15:56 Сейчас в теме
(13)вы не рассказали, что хотите получить в результате - объединить остатки и движения и сохранить регистраторы движения?
16. DENSKR 15 12.11.20 16:02 Сейчас в теме
(15) Получить дату регистратора регистра накопления.
17. karamazoff 96 12.11.20 16:06 Сейчас в теме
(16)у вас в запросе есть получение начальных (ну и конечных) остатков, допустим это регистр по складу вы получаете начальный остаток на СЕГОДНЯ и там количество 20, которое было сформировано документами поступления в течении полугода и документов там с полста, какую дату вы хотите получить?
alex-l19041; +1 Ответить
18. DENSKR 15 12.11.20 16:11 Сейчас в теме
(17)Каждый Залоговый билет Уникален и необходимо получить дату регистратора движения остатка по этому Залоговому билету.
19. nomad_irk 76 12.11.20 16:14 Сейчас в теме
(18)будет 3 движения:

1. Расход
2. Приход
3. Расход

Какая дата вас интересует из них?
20. karamazoff 96 12.11.20 16:16 Сейчас в теме
(18)сдаюсь, как дальше объяснять не знаю... у остатка нет регистратора, это накопительная цифра. Может вы хотите получить ПОСЛЕДНИЙ регистратор до даты начала отбора?
alex-l19041; +1 Ответить
23. DENSKR 15 13.11.20 09:30 Сейчас в теме
(20) У остатка нет регистратора. А у регистра есть регистратор движения уникального объекта. Мне необходимо получить не регистратор общего остатка, а дату регистратора Прихода или Расхода уникального в данном случае залогового билета, не смотря на то что, дата движения регистратора не входит в отбор между &ДатаНачала и &ДатаОкончания
21. karamazoff 96 12.11.20 16:30 Сейчас в теме
(18)О! придумал, если делать отчетом СКД, в запросе получаем всю таблицу по оборотам, без отбора по датам, потом вторую по остаткам, с отбором по датам, пересекаем их по билету, а дальше в группировке СКД будет Билет, начальный и конечный остаток на дату, а в детализации регистраторы за весь период жизни!
46. DENSKR 15 13.11.20 16:42 Сейчас в теме
(21) Отчётом не подходит...
14. nomad_irk 76 12.11.20 15:53 Сейчас в теме
(10)Все верно, это начальные и конечные остатки. Исключите их параметром виртуальной таблицы. Границы периода вам не нужны, нужны только сами движения.
Прикрепленные файлы:
FatPanzer; +1 Ответить
44. DanDy 52 13.11.20 16:38 Сейчас в теме
(14)Мне кажется тут всё ещё банальнее))) Просто есть залоговые билеты по которым не было движений за выбранный период. Но остатки то есть. Вот вам и строки без регистраторов и соответственно их дат.
45. DENSKR 15 13.11.20 16:41 Сейчас в теме
(44) Именно так! И в конечном итоге просил помощи у форумчан как выбрать даты регистраторов не смотря на выбранный период.
47. DanDy 52 13.11.20 16:48 Сейчас в теме
(45)Ну так выберите сначала максимальную дату по всем измерениям (без отбора по периоду) А потом этот результат соедините с вашим запросом и будет вам счастье.
48. DENSKR 15 13.11.20 16:51 Сейчас в теме
(47)Соединить через объединение или как, можно пример? Или связать по определенному полю например Залоговый билет ?
50. DanDy 52 13.11.20 16:56 Сейчас в теме +2 $m
(48) Ну вот накидал по-быстрому на регистре "ТоварыНаСкладах"

"ВЫБРАТЬ
|	ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
|	ТоварыНаСкладахОстаткиИОбороты.Характеристика КАК Характеристика,
|	ТоварыНаСкладахОстаткиИОбороты.Назначение КАК Назначение,
|	ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
|	ТоварыНаСкладахОстаткиИОбороты.Помещение КАК Помещение,
|	ТоварыНаСкладахОстаткиИОбороты.Серия КАК Серия,
|	ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток,
|	ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток
|ПОМЕСТИТЬ ОстаткиЗаПериод
|ИЗ
|	РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК ТоварыНаСкладахОстаткиИОбороты
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|	ТоварыНаСкладахОбороты.Номенклатура КАК Номенклатура,
|	ТоварыНаСкладахОбороты.Характеристика КАК Характеристика,
|	ТоварыНаСкладахОбороты.Назначение КАК Назначение,
|	ТоварыНаСкладахОбороты.Склад КАК Склад,
|	ТоварыНаСкладахОбороты.Помещение КАК Помещение,
|	ТоварыНаСкладахОбороты.Серия КАК Серия,
|	МАКСИМУМ(ТоварыНаСкладахОбороты.Регистратор.Дата) КАК ДатаРегистратора
|ПОМЕСТИТЬ ДатыПоследнихРегистраторов
|ИЗ
|	РегистрНакопления.ТоварыНаСкладах.Обороты(
|			,
|			,
|			Регистратор,
|			(Номенклатура, Характеристика, Назначение, Склад, Помещение, Серия) В
|				(ВЫБРАТЬ
|					ОстаткиЗаПериод.Номенклатура КАК Номенклатура,
|					ОстаткиЗаПериод.Характеристика КАК Характеристика,
|					ОстаткиЗаПериод.Назначение КАК Назначение,
|					ОстаткиЗаПериод.Склад КАК Склад,
|					ОстаткиЗаПериод.Помещение КАК Помещение,
|					ОстаткиЗаПериод.Серия КАК Серия
|				ИЗ
|					ОстаткиЗаПериод КАК ОстаткиЗаПериод)) КАК ТоварыНаСкладахОбороты
|
|СГРУППИРОВАТЬ ПО
|	ТоварыНаСкладахОбороты.Помещение,
|	ТоварыНаСкладахОбороты.Серия,
|	ТоварыНаСкладахОбороты.Назначение,
|	ТоварыНаСкладахОбороты.Склад,
|	ТоварыНаСкладахОбороты.Характеристика,
|	ТоварыНаСкладахОбороты.Номенклатура
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|	ОстаткиЗаПериод.Номенклатура КАК Номенклатура,
|	ОстаткиЗаПериод.Характеристика КАК Характеристика,
|	ОстаткиЗаПериод.Назначение КАК Назначение,
|	ОстаткиЗаПериод.Склад КАК Склад,
|	ОстаткиЗаПериод.Помещение КАК Помещение,
|	ОстаткиЗаПериод.Серия КАК Серия,
|	ОстаткиЗаПериод.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток,
|	ОстаткиЗаПериод.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток,
|	ДатыПоследнихРегистраторов.ДатаРегистратора КАК ДатаРегистратора
|ИЗ
|	ОстаткиЗаПериод КАК ОстаткиЗаПериод
|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатыПоследнихРегистраторов КАК ДатыПоследнихРегистраторов
|		ПО ОстаткиЗаПериод.Номенклатура = ДатыПоследнихРегистраторов.Номенклатура
|			И ОстаткиЗаПериод.Характеристика = ДатыПоследнихРегистраторов.Характеристика
|			И ОстаткиЗаПериод.Назначение = ДатыПоследнихРегистраторов.Назначение
|			И ОстаткиЗаПериод.Склад = ДатыПоследнихРегистраторов.Склад
|			И ОстаткиЗаПериод.Помещение = ДатыПоследнихРегистраторов.Помещение
|			И ОстаткиЗаПериод.Серия = ДатыПоследнихРегистраторов.Серия"
Показать
51. DanDy 52 13.11.20 16:57 Сейчас в теме
(50) Этого должно быть достаточно для понимания принципа)))
56. nomad_irk 76 13.11.20 18:19 Сейчас в теме
(51)Что будет, если несколько документов в одну секунду сделают движение по одной комбинации измерений регистра?
57. DanDy 52 13.11.20 22:07 Сейчас в теме
(56)Ничего критичного))) я же беру максимум по дате. Сам регистратор не учитывается. Вот и подумайте чему будет максимум(6,6) например
59. nomad_irk 76 13.11.20 23:12 Сейчас в теме
(57)в МАКСИМУМ(Дата) попадут несколько регистраторов, это вы считаете ничего критичного?
61. DanDy 52 15.11.20 13:29 Сейчас в теме
(59) Где вы в моем запросе видите выборку регистраторов?
Научитесь читать запрос, ну или уж на крайний случай воспользуйтесь конструктором если не можете воспринимать текст.
60. FatPanzer 14.11.20 10:09 Сейчас в теме
(57) Тут поддержу. Если ссылку не брать в запрос, то нормально свернется.
53. DENSKR 15 13.11.20 16:58 Сейчас в теме
(50) Спасибо огромное! Это то что нужно!
54. DanDy 52 13.11.20 16:59 Сейчас в теме
(53) Вам надо научится четко излагать задачи и желания. А то без портянки сообщений что выше, не разберёшься что вам в итоге требуется)
55. Fox-trot 158 13.11.20 17:16 Сейчас в теме
(53)еогда начнутся тормоза, отпишитесь плиз
58. DanDy 52 13.11.20 22:07 Сейчас в теме
(55)Почему они должны начаться?)))
49. FatPanzer 13.11.20 16:53 Сейчас в теме
52. DanDy 52 13.11.20 16:57 Сейчас в теме
(49)Да нет, не попал. Там какой нибудь КПК или Микрозайм, это их любимые хотелки)))
22. ixijixi 1809 12.11.20 17:35 Сейчас в теме
Да тут все проще, КМК. Раз нужны даты регистраторов, то и выборку делать надо не из виртуальной таблицы ОстаткиИОбороты, а из основной
"ВЫБРАТЬ
        |    БланкиЗБ_.ЗалоговыйБилет КАК ЗалоговыйБилет,
        |    БланкиЗБ_.Регистратор КАК Регистратор,
        |    БланкиЗБ_.Регистратор.Дата КАК Дата
        |ИЗ
        |    РегистрНакопления.ЛМБ_БланкиЗалоговыхБилетов ГДЕ БланкиЗБ_.Период МЕЖДУ &ДатаНачала И &ДатаОкончания";
Fox-trot; +1 Ответить
24. DENSKR 15 13.11.20 09:36 Сейчас в теме
(22)В таком случае даты выбираются за период "МЕЖДУ &ДатаНачала И &ДатаОкончания"
26. FatPanzer 13.11.20 09:52 Сейчас в теме
(24) А надо-то что? Так и не понятно по условию задачи - нужны регистраторы в заданном периоде или движения заданного периода с регистраторами? Если второе - то вам уже правильно ответили в (14).
27. DENSKR 15 13.11.20 10:28 Сейчас в теме
(26) Начальный/Конечный остаток всех ЗБ, движение ЗБ за выбранный период и даты регистраторов движений ЗБ за выбранный период и если дата движения не входит в выбранный период то она все равно должна быть.
28. FatPanzer 13.11.20 10:40 Сейчас в теме
(27)
дата движения не входит в выбранный период
Вот теперь вы мне расскажете, что вы называете датой движения. Дата движения - это служебное измерение "Период" регистра накопления, именно на него вы и ставите отбор в виртуальной таблице. То есть она всегда есть, и она всегда входит в выбранный период.
А вот дата регистратора - это совсем отдельная тема, она тоже всегда есть и вот именно она может не входить в выбранный период. Но это не дата движения! Да, они совпадают в общем случае, но не обязательно. Тем не менее, в результате запроса она всегда есть.

А те строки результата, в которых нет даты регистратора - это строки с начальными и конечными остатками по измерениям, у них и Дата = NULL и Регистратор = NULL, и все остальные реквизиты Регистратора = NULL, там не может быть даты по определению.
При обработке таких строк просто проверяйте наличие регистратора в результирующей таблице и в зависимости от этого подставляйте дату начала или дату окончания. Этой логикой ведает только разработчик, сама система вам тут не помощник.
29. DENSKR 15 13.11.20 10:49 Сейчас в теме
(28) Вот это я понимаю мораль! Дата регистратора движения в моем случае = дате движения! Пусть это служебное измерение! Так вот мне нужно, чтобы подтянулась Дата регистратора движения, не смотря на отбор по периоду!
30. FatPanzer 13.11.20 10:52 Сейчас в теме
(29) Ты слепой или глухой? Тебе уже сказали, что там где есть регистратор, там есть и дата. А там где регистратора нет и быть не может по определению (в строках с синтетическими остатками по измерениям) - там не может быть и даты регистратора!

Перечитай еще раз (14), попробуй, сравни, и тогда спорь. А пока остановимся на этом. Пока не разберешься, как работает запрос к таблице ОстаткиИОбороты - бесполезно тебе что-то объяснять.
nomad_irk; ixijixi; +2 Ответить
31. Fox-trot 158 13.11.20 11:07 Сейчас в теме
(30) брось, я уже пытался намекнуть, ничего не вышло
32. DENSKR 15 13.11.20 11:31 Сейчас в теме
(30) Мне просто нужно в запросе получить последнюю дату регистратора, не смотря на то, что стоит отбор по дате в запросе! Дата регистратора не входит в отобранную дату.
33. FatPanzer 13.11.20 11:37 Сейчас в теме
(32)
получить последнюю дату регистратора
Как это? У регистратора может быть несколько дат? Или все таки не последнюю дату регистратора, а "дату последнего регистратора, который формировал движения в выбранном периоде"? А может быть "дату регистратора последнего движения в выбранном периоде"?

А вообще интересно, как трансформируется задача - от "получить дату в обход периода" до "получить последнюю дату".
34. DENSKR 15 13.11.20 11:46 Сейчас в теме
(33) Есть конечная дата регистратора который зарегистрировал конечное движение остатка объекта.
Так вот я пытаюсь получить эту дату.
35. nomad_irk 76 13.11.20 11:53 Сейчас в теме
(34)В таком случае, нужно запрос переписать от слова полностью.
36. DENSKR 15 13.11.20 12:26 Сейчас в теме
37. nomad_irk 76 13.11.20 12:35 Сейчас в теме
(36) Принцип такой:
Выбрать
	ЗалоговыйБилет, 
	Максимум(Регистратор.МоментВремени) КАК МоментВремени 
Поместить ВТ_ДвиженияСрезПоследних
ИЗ
	Регистр.ОсновнаяТаблица
СГРУППИРОВАТЬ ПО
        ЗалоговыйБилет
;
Выбрать
	Т1.ЗалоговыйБилет, 
	Т2.Регистратор.Дата КАК Дата
Из
	Регистр.ОсновнаяТаблица КАК Т1
		ЛЕВОЕ СОЕДИНЕНИЕ Регистр.ОсновнаяТаблица КАК Т2 
		ПО Т1.ЗалоговыйБилет = Т2.ЗалоговыйБилет
			И Т1.МоментВремени = Т2.Регистратор.МоментВремени
Показать


Я правда не уверен, что можно сделать Максимум(Регистратор.МоментВремени).
Если так сделать нельзя, то придется сделать нумерацию регистраторов по моменту времени.

Принцип в следующем:

Выбрать
	ЗалоговыйБилет, 
	Регистратор.МоментВремени КАК МоментВремени
Поместить ВТ_Регистраторы
ИЗ
	Регистр.ОсновнаяТаблица
;	
Выбрать
	Т1.ЗалоговыйБилет, 
	Т1.МоментВремени, 
	Сумма(1) КАК НомерСтроки
ПОМЕСТИТЬ ВТ_РегистраторыНумерованные
ИЗ 
	ВТ_Регистраторы КАК Т1
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Регистраторы КАК Т2
		ПО Т1.ЗалоговыйБилет = Т2.ЗалоговыйБилет
			И Т1.МоментВремени < Т2.МоментВремени
СГРУППИРОВАТЬ ПО 
	Т1.ЗалоговыйБилет,
	Т1.МоментВремени
;
Выбрать
	Т2.ЗалоговыйБилет, 
	Т1.Регистратор.Дата
ИЗ
	Регистр.ОсновнаяТаблица КАК Т1
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_РегистраторыНумерованные КАК Т2
		ПО Т1.ЗалоговыйБилет = Т2.ЗалоговыйБилет
		И Т2.НомерСтроки = 1
Показать
40. nomad_irk 76 13.11.20 13:10 Сейчас в теме
(37) Запрос:

Выбрать
    Т2.ЗалоговыйБилет, 
    Т1.Регистратор.Дата
ИЗ
    Регистр.ОсновнаяТаблица КАК Т1
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_РегистраторыНумерованные КАК Т2
        ПО Т1.ЗалоговыйБилет = Т2.ЗалоговыйБилет
        И Т2.НомерСтроки = 1


Следует сделать следующим образом:

Выбрать
    Т2.ЗалоговыйБилет, 
    Т1.Регистратор.Дата
ИЗ
    Регистр.ОсновнаяТаблица КАК Т1
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_РегистраторыНумерованные КАК Т2
        ПО Т1.ЗалоговыйБилет = Т2.ЗалоговыйБилет
        И Т1.Регистратор.МоментВремени = Т2.МоментВремени
        И Т2.НомерСтроки = 1
Показать
25. Jimbo 9 13.11.20 09:37 Сейчас в теме
ФэйсПалм

БланкиЗБ_.Регистратор КАК Регистратор,

выбор когда БланкиЗБ_.Регистратор Ссылка ДокументТакой-То
тогда выразить(БланкиЗБ_.Регистратор КАК ДокментТакой-То).Дата
когда БланкиЗБ_.Регистратор Ссылка ДокументИной-То
тогда выразить(БланкиЗБ_.Регистратор КАК ДокментИной-То).Дата
иначе ДатаВремя(1,1,1)
конец как Дата
38. starik-2005 3043 13.11.20 12:46 Сейчас в теме
(25)
ФэйсПалм
А зря. Вряд ли в явно узкоспециализированном регистре будет много регистраторов. А вот группировать смысла тут никакого нет. Также автор не указал, в каком месте у него вылетает ошибка с датой. Предположу, что в регистре не всегда есть регистратор (например, битые ссылки удаленных непосредственно документов, что в отраслевых и самописных конфигурациях встречается на каждом шагу).
39. FatPanzer 13.11.20 12:49 Сейчас в теме
(38)
Вряд ли в явно узкоспециализированном регистре будет много регистраторов.
А даже если и будет, то они тоже должны присутствовать в результате запроса (если в задаче нет явных ограничений).
41. Jimbo 9 13.11.20 14:23 Сейчас в теме
(38) РН - по любому есть Приходный документ и Расходный, ничего не группирую, описал выбор поля, чтоб по любому всегда была дата - раз автору так надо
42. FatPanzer 13.11.20 14:50 Сейчас в теме
(41) Не факт. Может быть и один документ.
43. Jimbo 9 13.11.20 14:51 Сейчас в теме
(42)
выбор когда БланкиЗБ_.Регистратор Ссылка ДокументТакой-То
тогда выразить(БланкиЗБ_.Регистратор КАК ДокментТакой-То).Дата
иначе ДатаВремя(1,1,1)
конец как Дата
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот