проблема с формированием отчета

Тема в разделе "1C и всё что с ней связано", создана пользователем 4xter, 20 авг 2010.

Статус темы:
Закрыта.
  1. 4xter

    4xter Гость

    Уважаемые форумчане, есть не типовая конфигурация 1С 7.7 ТиС. В ней Справочник Клиентов, которому подчинен ещё справочник пунктов разгрузки(далее ПР). В 2-х реквизитах справочника ПР содержаться ссылки на документы по скидкам(далее акция и акция1). В этих документов идет перечень товаров, по которым будет скидка. Нужно соорудить такой отчет, который бы показывал активные(т.е. проведенные) акции, подставленные во все ПР, причем выводится ещё должны и позиции товаров, по которым идет акция.Так вот, проблема собственно в чем: каким образов впихнуть эти акционные позиции из документа. Так то я открываю справочник клиентов, пробегаюсь по ПР, запихиваю всё в ТЗ, а потом отсортировав по номеру акции вывожу в печатную форму. Как привязать товары?
    p.s. в приложении приблизительный вид печатной формы,файл xls не дало загрузить, переименуйте в xls
    pp.s. Сори если вопрос очень простой, возможно пятница на меня повлияла =))))
     

    Вложения:

    • _____.txt
      Размер файла:
      12 КБ
      Просмотров:
      11
  2. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Сумбурно изложено, но попробую предположить следующее :
    Если акция - конкретный документ, то что мешает вытащить из табличной части этого документа товары ?
     
  3. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Все можно сделать в запросе. Максимум в двух ;-)
     
  4. 4xter

    4xter Гость

    Что-то у меня не получается увязать всё в одно целое. Делаю так:
    СпрК=СоздатьОбъект("Справочник.Клиенты");
    Пункт=СоздатьОбъект("Справочник.ПунктыРазгрузки");
    Таб=СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица6");
    Таб.ВывестиСекцию("Шапка");
    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("Клиент");
    ТЗ.НоваяКолонка("ПунктРазгрузки");
    ТЗ.НоваяКолонка("Акция");
    ТЗ.НоваяКолонка("С");
    ТЗ.НоваяКолонка("По");
    СпрК.ВыбратьЭлементы();
    пока СпрК.ПолучитьЭлемент()=1 Цикл
    Пункт.ИспользоватьВладельца(СпрК.ТекущийЭлемент());
    Пункт.ВыбратьЭлементы();
    пока Пункт.ПолучитьЭлемент()=1 Цикл
    Если Пункт.ПометкаУдаления()=1 Тогда
    Продолжить;
    КонецЕсли;
    Если Пункт.Акция.Выбран()=1 тогда
    Док=СоздатьОбъект("Документ.Скидка");
    Док=Пункт.Акция;
    Если Док.Проведен()=1 тогда
    ТЗ.НоваяСтрока();
    ТЗ.Клиент=СпрК.ТекущийЭлемент();
    ТЗ.ПунктРазгрузки=Пункт.ТекущийЭлемент();
    ТЗ.Акция=Пункт.Акция;
    ТЗ.С=Пункт.Акция.ДатаС;
    ТЗ.По=Пункт.Акция.ДатаПо;
    КонецЕсли;
    КонецЕсли;
    Если Пункт.Акция1.Выбран()=1 тогда
    Док=СоздатьОбъект("Документ.Скидка");
    Док=Пункт.Акция1;
    Если Док.Проведен()=1 тогда
    ТЗ.НоваяСтрока();
    ТЗ.Клиент=СпрК.ТекущийЭлемент();
    ТЗ.ПунктРазгрузки=Пункт.ТекущийЭлемент();
    ТЗ.Акция=Пункт.Акция1;
    ТЗ.С=Пункт.Акция1.ДатаС;
    ТЗ.По=Пункт.Акция1.ДатаПо;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    ТЗ.Сортировать("Акция");
    Акц="";
    Кл="";
    Сч=0;
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл
    Если ТЗ.Акция<>"" Тогда
    ТабКл=ТЗ.Клиент;
    ТабПР=ТЗ.ПунктРазгрузки;
    ТабАкц=ТЗ.Акция;
    ТабПер="С "+ТЗ.С+" по "+ТЗ.ПО;
    Если (Акц<>ТЗ.Акция) или (Кл<>ТЗ.Клиент) Тогда
    Если (Кл<>ТЗ.Клиент) и (Акц=ТЗ.Акция) Тогда
    ТабАкц="";
    ТабПер="";
    КонецЕсли;
    Таб.ВывестиСекцию("Строка");
    Акц=ТЗ.Акция;
    Кл=ТЗ.Клиент;
    Иначе
    ТабКл="";
    ТабАкц="";
    ТабПер="";
    Таб.ВывестиСекцию("Строка");
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;



    это у меня выводит только перечень клиентов с ПР по каждой из акции. Не могу смекнуть как привязать товары к акции. Ведь документ привязан к каждому ПР и по несколько раз, а нужно взять его только один раз. ((((
     
  5. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    ТекстЗапроса = "Период с ВыбНач по ВыбКон;
    |Обрабатывать Все;
    |ОбрабатыватьДокументы Проведенные;
    |Клиент = Справочники.Клиенты.ТекущийЭлемент;
    |Пр=Справочник.ПунктыРазгрузки.ТекущийЭлемент;
    |Акция= Справочник.ПунктыРазгрузки.Акция;
    |Акция1= Справочник.ПунктыРазгрузки.Акция1;
    |Товар = Документ.ПунктыРазгрузки.Акция.Товар, Документ.ПунктыРазгрузки.Акция1.Товар;
    |Группировка Клиент БезГрупп;
    |ГРуппировка Пр Все;
    |ГРуппировка Акция;
    |ГРуппировка Акция1;
    |Группировка Товар БезГрупп;
    |Условие(Пр.Владелец = Клиент);

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

    Потом куришь ТЗ ( выведи его на форму для лучшего отображения) и смотришь что не хватает.

    В синтаксисе могут быть ошибки - отлаживай вживую. Даты акций вытаскиваешь при выводе группировки акций
     
  6. 4xter

    4xter Гость

    а если акция действует в нескольких ПР не будет ли постоянного дублирования позиций? но всё равно спасибо, проверю
     
  7. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Так у тебя должно показывать в каких ПР идет акция для клиента - будет конечно.
     
Загрузка...
Похожие Темы - проблема формированием отчета
  1. fastin
    Ответов:
    1
    Просмотров:
    1.523
  2. c0de3r
    Ответов:
    5
    Просмотров:
    119
  3. DobermannTT
    Ответов:
    10
    Просмотров:
    133
  4. SoulPaladin
    Ответов:
    3
    Просмотров:
    122
  5. Artael
    Ответов:
    1
    Просмотров:
    109
Статус темы:
Закрыта.

Поделиться этой страницей