Исправление ошибки в документе Установка типов цен по группам номенклатуры для покупателей

1. anig99 2844 25.12.13 11:48 Сейчас в теме
В процедуре ПроверитьПересекающиесяДокументы есть ошибка (судя по теме про УТ 10.3 ошибка аж с 2010 года).

Запрос = Новый Запрос;

	Запрос.УстановитьПараметр("ДокументСсылка", Ссылка);
	Запрос.УстановитьПараметр("ПустойТипЦен", Справочники.ТипыЦенНоменклатуры.ПустаяСсылка());
	Запрос.УстановитьПараметр("Дата", ДатаНачала);
	Запрос.УстановитьПараметр("Контрагент", Контрагент);

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

	ТЗ = Запрос.Выполнить().Выгрузить();

	ТЗ.Колонки.Добавить("ДатаОкончания");
	ТЗ.ЗаполнитьЗначения('00010101' ,"ДатаОкончания");

	КоличествоСтрок = ТЗ.Количество() - 1;
	Для Тмп = 0 По КоличествоСтрок Цикл
		СтрокаТЗ = ТЗ[КоличествоСтрок - Тмп];

		Если НЕ ЗначениеЗаполнено(СтрокаТЗ.ТипЦен) Тогда
			Для Тмп1 = 0 По ТЗ.Количество() -1 Цикл
				СтрокаПоиска = ТЗ[Тмп];

				Если СтрокаПоиска.Группа = СтрокаТЗ.Группа
				   И НЕ ЗначениеЗаполнено(СтрокаПоиска.ДатаОкончания) Тогда
					СтрокаПоиска.ДатаОкончания = СтрокаТЗ.ДатаНачала;
					ТЗ.Удалить(СтрокаТЗ);
					Прервать;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
	КонецЦикла;
Показать



Исправил так
			Для Тмп1 = Тмп По КоличествоСтрок - 1 Цикл   //mav
				СтрокаПоиска = ТЗ[КоличествоСтрок - Тмп1 - 1]; //mav



Код должен был таблицу вида

начало периода
конец периода
начало периода1
конец периода1

Превращать в таблицу

Начало периода Конец Периода
Начало периода1 Конец Периода1

Раньше код служил хаосу периодически выпадая в астрал. Теперь вроде работает с минимальными изменениями.
По теме из базы знаний
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

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