7.7 КонДата = СформироватьПозициюДокумента(Докум,-1) не робит в запросе (((

1. zoeh 31 12.12.23 16:02 Сейчас в теме

	ТекстЗапроса = "
	|Период С НачДата По КонДата;
	|ФирмаРег = Регистр.ПартииНаличие.Фирма;
	|Номенклатура = Регистр.ПартииНаличие.Номенклатура;
	|ПриходныйДокумент = Регистр.ПартииНаличие.Партия.ПриходныйДокумент;
	
	|МОЛ = Регистр.ПартииНаличие.МОЛ;
	
	|КоличествоРег = Регистр.ПартииНаличие.Количество;
	|СуммаРег = Регистр.ПартииНаличие.СуммаРуб;
	|Группировка Номенклатура Без Групп;
	|Группировка ПриходныйДокумент;
	|Функция ПриходКолВо = Приход(КоличествоРег);
	|Функция Количество = КонОст(КоличествоРег);
	|Функция Сумма = КонОст(СуммаРег);	
	|Условие (ФирмаРег = Фирма);
	|Условие (МОЛ = вСклад);
	|Условие (Номенклатура в СписокНоменклатура);";
	                       
	Фирма = Докум.Фирма;
	НачДата = ДобавитьМесяц(Докум.ДатаДок,-24);
	
	//КонДата = Докум.ДатаДок-1;  //ТАК РАБОТАЕТ
	КонДата = СформироватьПозициюДокумента(Докум,-1);  // А ТАК НЕТ!
	//СформироватьПозициюДокумента(Докум,-1);// Мин(СформироватьПозициюДокумента(Докум,-1),ПолучитьПозициюТА());
	//сообщить(КонДата);
	Запрос = СоздатьОбъект("Запрос");
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. zoeh 31 12.12.23 19:28 Сейчас в теме
почему коност выходит на после проведенный момент времени конкретного документа?
3. Гость 12.12.23 23:23
Добрый день!
Если вопрос о строке КонДата = СформироватьПозициюДокумента(Докум,-1);
Не работал в 7.7,
но по внешнему виду и сходству с 8.х
обороты в выражении "Период С НачДата По КонДата;" по моему мнению ожидают параметры типа дата, а не момент времени, или всё-таки запрос его может использовать, но некорректно? Есть ли что-то типо границы 1с 8.х с видом границы НеВключая? Чтобы оно выходило на допроведенный момент времени документа
4. zoeh 31 13.12.23 04:08 Сейчас в теме
Спасибо за совет ошибка понятна!
6. zoeh 31 13.12.23 05:07 Сейчас в теме
ТИИБ делал толку ноль
между прочим так тоже не работает:
Д=СоздатьОбъект("Документ");
	Д.ОбратныйПорядок(1);
	Д.ВыбратьДокументы(Докум.ДатаДок-30,Докум.ПолучитьПозицию());
	Д2="";
	Пока Д.ПолучитьДокумент() = 1 Цикл
		
		Если Д.ТекущийДокумент()=Докум Тогда
			Продолжить;
		КонецЕсли;
		Сообщить(Д);
		Если Д2="" Тогда
			Д2=Д.ТекущийДокумент();
		КонецЕсли;
	КонецЦикла;
	Сообщить(Д2);
	КонДата = Д2;
Показать
7. zoeh 31 13.12.23 06:34 Сейчас в теме
Заработало только вот так:
Д=СоздатьОбъект("Документ");
	Д.ОбратныйПорядок(1);
	Д.ВыбратьДокументы(Докум.ДатаДок-30,Докум.ПолучитьПозицию());
	Д2="";

	Пока Д.ПолучитьДокумент() = 1 Цикл
		Если Д.ТекущийДокумент()=Докум.ТекущийДокумент() Тогда
			Продолжить;
		КонецЕсли;

		Если Д2="" Тогда
			Д2=Д.ТекущийДокумент();
			Сообщить(Д2);
		КонецЕсли;
	
	КонецЦикла;
	
	КонДата = Д2;
Показать
user1481466; +1 Ответить
8. CheBurator 3125 13.12.23 11:11 Сейчас в теме
хз что у вас там не работает.. вы ж даже никакой инфы не привели
.
Прекрасно все работает.
.
//*******************************************
Процедура Сформировать()
	
	Фирма = Докум.Фирма;
   	НачДата = ДобавитьМесяц(Докум.ДатаДок,-24);
    КонДата = СформироватьПозициюДокумента(Докум,-1);  
	Сообщить(КонДата);
	
    ТекстЗапроса = "
    |Период С НачДата По КонДата;
    |ФирмаРег = Регистр.ПартииНаличие.Фирма;
    |Номенклатура = Регистр.ПартииНаличие.Номенклатура;
    |ПриходныйДокумент = Регистр.ПартииНаличие.Партия.ПриходныйДокумент;
    |КоличествоРег = Регистр.ПартииНаличие.Количество;
    |СуммаРег = Регистр.ПартииНаличие.СуммаРуб;
    |Группировка Номенклатура Без Групп;
    |Группировка ПриходныйДокумент;
    |Функция ПриходКолВо = Приход(КоличествоРег);
    |Функция Количество = КонОст(КоличествоРег);
    |Функция Сумма = КонОст(СуммаРег);    
    |Условие (ФирмаРег = Фирма);
	|";
                           
    Запрос = СоздатьОбъект("Запрос");	
	Запрос.Выполнить(ТекстЗапроса);
	ТЗ=""; Запрос.Выгрузить(ТЗ,0,0);
	ПечатьТЗ(ТЗ,"тест");
КонецПроцедуры
Показать

.
Докум- реквизит на форме с типовм "Документ".
Оставьте свое сообщение

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