helpf.pro
Регистрация

v8.2 УП: Меняется необходимый запрос в СКД

Draconus
28.03.2012 13:26Прочитано: 6850
Доброго времени суток. Вотпрос следующий, может кто-то сталкивался или есть идеи...Есть СКД с неким запросом
Код 1C v 8.2 УП
 ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка КАК Реализация,
СведенияОПриходеДокументовСрезПоследних.ПризнакВозвратаДокумента КАК ПризнакВозвратаДокумента,
СведенияОПриходеДокументовСрезПоследних.ПричинаНевозвратаДокумента КАК ПричинаНевозвратаДокумента,
СведенияОПриходеДокументовСрезПоследних.МаршрутныйЛист КАК МаршрутныйЛист,
СведенияОПриходеДокументовСрезПоследних.Заявка КАК Заявка,
РеализацияТоваровУслуг.Контрагент КАК Контрагент
{ВЫБРАТЬ
Реализация.*,
ПризнакВозвратаДокумента,
ПричинаНевозвратаДокумента.*,
МаршрутныйЛист.*,
Заявка.*,
Контрагент.*}
ИЗ
РегистрСведений.СведенияОПриходеДокументов.СрезПоследних(, ) КАК СведенияОПриходеДокументовСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ПО СведенияОПриходеДокументовСрезПоследних.Заявка = РеализацияТоваровУслуг.Сделка
{ГДЕ
РеализацияТоваровУслуг.Ссылка.* КАК Реализация,
СведенияОПриходеДокументовСрезПоследних.Заявка.*,
СведенияОПриходеДокументовСрезПоследних.МаршрутныйЛист.*,
РеализацияТоваровУслуг.Контрагент.*,
СведенияОПриходеДокументовСрезПоследних.ПризнакВозвратаДокумента,
СведенияОПриходеДокументовСрезПоследних.ПричинаНевозвратаДокумента.*}


Который непонятным образом становится таким
Код 1C v 8.2 УП
 ВЫБРАТЬ
СведенияОПриходеДокументовСрезПоследних.ПризнакВозвратаДокумента КАК ПризнакВозвратаДокумента,
СведенияОПриходеДокументовСрезПоследних.ПричинаНевозвратаДокумента КАК ПричинаНевозвратаДокумента,
ПРЕДСТАВЛЕНИЕССЫЛКИ(СведенияОПриходеДокументовСрезПоследних.ПричинаНевозвратаДокумента) КАК ПричинаНевозвратаДокументаПредставление
ИЗ
РегистрСведений.СведенияОПриходеДокументов.СрезПоследних(&П, ) КАК СведенияОПриходеДокументовСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ПО СведенияОПриходеДокументовСрезПоследних.Заявка = РеализацияТоваровУслуг.Сделка


Код в модуле формы
Код 1C v 8.2 УП
 // Получаем Таблицу значений по документам Реализация товаров, у которых нет документов по установленным отборам
//
&НаСервере
Функция ОбновитьПереченьДокументов()

Запрос = ПолучитьДляПеречняДокументовЗапросСКД(АдресСхемыКомпоновкиДанных,
Объект.Компоновщик, Объект.ДатаОкончания);
Результат = Запрос.Выполнить();

Если Результат.Пустой() Тогда
ОбщегоНазначенияКлиентСервер.ВывестиСообщение("Нет данных, удовлетворяющих отбору.");
КонецЕсли;

Объект.НеВозвращенныеДокументы.Очистить();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

НоваяСтрока = Объект.НеВозвращенныеДокументы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока,Выборка);

КонецЦикла;

КонецФункции // ОбновитьПереченьДокументов()


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

//Инициализация схемы компановки данных
АдресСхемыКомпоновкиДанных = ПолучитьДляПеречняДокументовАдресСКД(Объект.Компоновщик);

КонецПроцедуры


&НаСервере
// Функция получает запрос схемы компановки данных для перечня документов на оплату
//
Функция ПолучитьДляПеречняДокументовЗапросСКД(АдресСКД, Компоновщик, ПериодРасхода) Экспорт

СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(АдресСКД);

//Выполняем компановку макета МакетСКД
// (настройки берутся из схемы компановки данных и из пользовательских настроек)
КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетСКД = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновкиДанных, Компоновщик.ПолучитьНастройки());

//Заполняем параметры макета компановки данных
//МакетСКД.ЗначенияПараметров.ДатаНачала.Значение = ПериодРасхода.ДатаНачала;
//МакетСКД.ЗначенияПараметров.ДатаОкончания.Значение = Объект.ДатаОкончания;
//МакетСКД.ЗначенияПараметров.ПустаяДата.Значение = Дата('00010101');

//Получаем запрос макета компановки данных
Запрос = Новый Запрос(МакетСКД.НаборыДанных.НаборДанных1.Запрос);

//Устанавливаем параметры запроса
ОписаниеПараметровЗапроса = Запрос.НайтиПараметры();
Для каждого ОписаниеПараметраЗапроса из ОписаниеПараметровЗапроса Цикл
Запрос.УстановитьПараметр(ОписаниеПараметраЗапроса.Имя, МакетСКД.ЗначенияПараметров[ОписаниеПараметраЗапроса.Имя].Значение);
КонецЦикла;

Возврат Запрос;

КонецФункции // ПолучитьДляПеречняДокументовЗапросСКД()

&НаСервере
// Функция инициализирует схему компановки данных для перечня документов на оплату
//
Функция ПолучитьДляПеречняДокументовАдресСКД(Компоновщик) Экспорт

СхемаКомпоновкиДанных = Обработки.ГрупповаяРегистрацияСтатусовПриходаДокументов.ПолучитьМакет("СхемаКомпановкиДанных");

АдресСхемыКомпоновкиДанных = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, Новый УникальныйИдентификатор);
ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемыКомпоновкиДанных);

Компоновщик.Инициализировать(ИсточникНастроек);

Компоновщик.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);

КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетСКД = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновкиДанных, Компоновщик.ПолучитьНастройки());
//МакетСКД = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновкиДанных, СхемаКомпоновкиДанных.НастройкиПоУмолчанию);

Возврат АдресСхемыКомпоновкиДанных;

КонецФункции // ПолучитьДляПеречняДокументовАдресСКД()


Второй день бьюсь, не понимаю, что тут творится...
Для примера, если в конструкторе запроса поставить галку "Блокировать полученные данные для последующего изменения", то оба запроса(!) добавляют себе эту строчку, то вообще непонятно становится...
Yandex
Возможно, вас также заинтересует
Реклама на портале
Draconus
28.03.2012 16:41Ответ № 1
Сам дурак.... Разобрался
yurets1C
25.03.2013 12:27Ответ № 2
(1) Draconus, подскажите, пожалуйста, как решили эту проблему, если вдруг еще помните.
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.