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

Помогите создать обработку в 1С предприятии :dfbsdfbsdf:

Автор proofet, 11 фев 2011, 21:04

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

proofet

объясните ктонибудь пожалуйсто еще раз работу Цикла...никак не пойму эту часть:
ТабЧасть=ВыборкаКонтрагенты.ТорговыеТочки;
     Если ТабЧасть.НайтиСтроки(Новый Структура("ТорговаяТочка", НашаТоргТочкаССылка).Количество()=0 тогда
            Контрагент=ВыборкаКонтрагенты.ПолучитьОбъект();
            НоваяСтрокаТЧ=ТабЧасть.Добавить();
            НоваяСтрокаТЧ.ТорговаяТочка=НашаТоргТочкаССылка;
            Контрагент.Записать();
  :kmtu:


cska-fanat-kz

В корне неверно.
Запрос уже выбрал всю необходимую информацию!

Надо так:

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

proofet

Спасибоо!!! Ваххх...я твой фанат!)))))))Шаришь!) Наконец то работает всё как нужно.... еще нужно только в запросе проверять ТТ на "пометку на удаление"

cska-fanat-kz

Цитата: proofet от 13 фев 2011, 16:51
Спасибоо!!! Ваххх...я твой фанат!)))))))Шаришь!) Наконец то работает всё как нужно.... еще нужно только в запросе проверять ТТ на "пометку на удаление"

Переведи.
1. Проверять что в ТЧ ТорговыеТочки контрагента имеется ТТ помеченная на удаление
2. Проверять что заносимая ТТ помечена на удаление

В случае 2 это делается не в запросе
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

proofet


Klyacksa

Цитироватьобъясните ктонибудь пожалуйсто еще раз работу Цикла...никак не пойму эту часть
Да, действительно, отбор по торговой точке нужно либо в запросе делать, либо в цикле потом :)

Проверка на пометку удаления:
Если ТоргТочка.ПометкаУдаления тогда
     Сообщить("Выбранная торговая точка помечена на удаление!");
     Возврат;
КонецЕсли
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

proofet

Спасибо!....Эх всё как всегда гениально и просто)

Теги:

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

Рейтинг@Mail.ru

Поиск