Имя: Пароль:
   
1C
 
Как установить границу последовательности на нужную дату?
0 Гений 1С
 
18.10.22
21:38
Создал ГП с полем Организация.

Пытаюсь установить так из даты ДатаГраницы, не подходит:



&НаСервере
Процедура УстановитьГраницуНаСервере()
    З = Новый Запрос(
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |    Т.Регистратор КАК Регистратор
    |ИЗ
    |    Последовательность.дор_Себестоимость КАК Т
    |ГДЕ
    |    Т.Организация = &Организация
    |    И Т.Период <= &Период
    |
    |УПОРЯДОЧИТЬ ПО
    |    Т.Период УБЫВ,
    |    Регистратор");
    З.УстановитьПараметр("Период", ДатаГраницы);
    З.УстановитьПараметр("Организация", Организация);
    Выборка = З.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        МоментВремени = Новый МоментВремени(Выборка.Регистратор.Дата, Выборка.Регистратор);
        Последовательности.дор_Себестоимость.УстановитьГраницу(МоментВремени, Новый Структура("Организация", Организация));
    Иначе
        Сообщить("Не найдено документов последовательности по: " + ДатаГраницы)
    КонецЕсли;
    ПолучитьГраницуНаСервере();
КонецПроцедуры



Можно как-то получить список всех документов из границы или только перебором по метаданным выцепить документы, которые в нее входят?
1 Aleksey
 
19.10.22
00:16
2 Сергиус
 
19.10.22
02:46
ВЫБРАТЬ
    |    Т.Регистратор КАК Регистратор
    |ИЗ
    |    Последовательность.дор_Себестоимость КАК Т
    |ГДЕ
    |    Т.Организация = &Организация
    |    И Т.Период <= &Период

Так не получает или что?
3 Гений 1С
 
19.10.22
07:41
(2) а чем от моего кода отличается?
(1) не нашел там про запросы к документам последовательности
4 Сергиус
 
19.10.22
13:46
(3)У тебя стоит "ПЕРВЫЕ 1")
5 Гений 1С
 
19.10.22
18:17
(4) у меня запрос пустой результат выдает, ниче?
6 Сергиус
 
20.10.22
13:14
(5)Режим телепат был выключен, извини..
7 Гений 1С
 
20.10.22
13:19
нашел свою же обработку 100-летней давности, посмотрел, как там реализовано так:


&НаСервере
Процедура УстановитьНаДатуНаСервере()
    ТекПоследовательность = Последовательности[Объект.ИмяПоследовательности];
    ТекПоследовательность.УстановитьГраницу(Объект.ПоДату, Новый Структура("Организация", Объект.Организация));
КонецПроцедуры



&НаСервере
Процедура УстановитьНаДатуНаСервере()
    ТекПоследовательность = Последовательности[Объект.ИмяПоследовательности];
    ТекПоследовательность.УстановитьГраницу(Объект.ПоДату, Новый Структура("Организация", Объект.Организация));
КонецПроцедуры

Попробую.

Остался вопрос, как восстанавливать ГП, проводя доки, покури обработки на инфостарте.

Например, эту:

https://infostart.ru/public/19690/

или: https://infostart.ru/public/333275/

Как говорится, все уже написяно до нас.
8 Гений 1С
 
20.10.22
17:18
Гм, по сути мне нужно получить документ, на котором сейчас стоит граница, это рас. Обработать его и установить документ на следующий.
кстати, граница стоит на документе, который ок или на следующем документе?
9 Гений 1С
 
20.10.22
20:49
(6) так, разобрался, если граница свежая, новая, то в ней нет документов. Стоит только поставить на нужную дату и все, документы есть.
10 Гений 1С
 
20.10.22
22:41
Все, разобрался, завтра выложу статью
11 СергейК
 
20.10.22
23:30
(8) "по сути мне нужно получить документ, на котором сейчас стоит граница"
граница не обязательно стит на документе. может стояит и в точке между документами...
12 mikecool
 
21.10.22
08:55
(10) пишите, Шура, пишите... буквы золотые!
13 Гений 1С
 
21.10.22
09:53
(11) может, ага. в статье все описано.
выложил результат в статье: https://geniy1s.ru/igry-s-graniczami-posledovatelnosti/
14 НафНаф
 
23.10.22
13:06
(13) такое себе... Почему организация измерение? Если будет перепродажа между организациями, то вполне возможна ситуация, когда посчитанная себестоимость по одной организации испортится другой (я о границах).
Почему не номенклатура? Приходится из-за нескольких позиций пересчитывать всю номенклатуру.
Ну и это скорее заметка, чем статья