Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 18:56

Запрос

Автор deringpavel, 29 июл 2013, 18:58

0 Пользователей и 1 гость просматривают эту тему.

deringpavel

Здравствуйте. Вопрос такой - имеется конфа Управление торговлей, версия 10.3. Имеется документ "план работ по ИТС", его вид прилагается в скриншоте.
Нужно сделать так, чтобы данные из колонок (номенклатура, ответственный, рег.номер и т.д.) остались без изменения, а добавились лишь только виды подписки (Проф, техно и т.д.). Где может быть ошибка?

Код такой:

Процедура ИТСНажатие(Кнопка)

ЗапросИТС = Новый Запрос;
ЗапросИТС.Текст = "ВЫБРАТЬ
                  | _2Н_ПодпискиИТССрезПоследних.Период,
                  | _2Н_ПодпискиИТССрезПоследних.Регистратор,
                  | _2Н_ПодпискиИТССрезПоследних.НомерСтроки,
                  | _2Н_ПодпискиИТССрезПоследних.Активность,
                  | _2Н_ПодпискиИТССрезПоследних.Контрагент,
                  | _2Н_ПодпискиИТССрезПоследних.Номенклатура,
                  | _2Н_ПодпискиИТССрезПоследних.РегистрационныйНомер,
                  | _2Н_ПодпискиИТССрезПоследних.ДатаНачалаПодписки,
                  | _2Н_ПодпискиИТССрезПоследних.ДатаОкончанияПодписки,
                  | _2Н_ПодпискиИТССрезПоследних.СрокПодписки,
                  | _2Н_ПодпискиИТССрезПоследних.ВидПодпискиИТС
                  |ИЗ
                  | РегистрСведений._2Н_ПодпискиИТС.СрезПоследних КАК _2Н_ПодпискиИТССрезПоследних";
 
ВыборкаИТС = ЗапросИТС.Выполнить();
Врем = ВыборкаИТС.Выгрузить();

Для Каждого Стр Из Врем Цикл
НоваяСтр = ЭтотОбъект.Работы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтр, Стр);
КонецЦикла;
КонецПроцедуры



Dethmontt

Ты постоянно добавляешь новые строки в ТЧ
НоваяСтр = ЭтотОбъект.Работы.Добавить();
Добавлено: 29 июл 2013, 20:51


А нужно искать по уже добавленным 
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

GRADUS

Надо в форме добавить колонку. Надо в ТЧ "Работы" добавить колонку и все будет работать.

deringpavel

Попробовал сделать так:


Для Каждого Стр Из ЭтотОбъект.Работы Цикл
               НайденнаяЗапись = ТЗВрем.Найти(ВидПодписки);
Стр.ВидПодписки = НайденнаяЗапись;
КонецЦикла;

Dethmontt

Так вам подписку в таблице надо искать или по подписке искать в таблице? (определитесь)
(P.S. сейчас вы ищите по подписке в таблице)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

deringpavel

Нет - вид подписки нужно добавить в табличную часть, при этом строки "контрагенты, ответственный" и т.д. должны остаться прежними.

То есть, искать подписку во временной таблице, созданной из запроса и вставить ее в табл. часть документа.

Dethmontt

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

Работы.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры

Добавлено: 29 июл 2013, 22:08


Ход ваших мыслей верный...
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

deringpavel

Ничего не понял из того что прислано...

Dethmontt

Цитата: deringpavel от 29 июл 2013, 22:17Ничего не понял из того что прислано...
Запрос объединяет табличную часть и регистр сведений и загружает обратно в табличную часть
Добавлено: 29 июл 2013, 22:34


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

Работы.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

GRADUS

Да это не его запрос )

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск