Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 70

По печатной форме

22.02.2013, 12:19. Показов 3076. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Есть вот такой код:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
ЗапросПоТоварам1 = Новый Запрос();
    ЗапросПоТоварам1.УстановитьПараметр("ТекущийДокумент", Ссылка);
    ЗапросПоТоварам1.УстановитьПараметр("Категория", "Основная");
    ЗапросПоТоварам1.Текст =
    "ВЫБРАТЬ
    |   РасходнаяНакладнаяТовары.Номенклатура КАК Номенклатура,
    |   РасходнаяНакладнаяТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |   РасходнаяНакладнаяТовары.Номенклатура.Код КАК Код,
    |   РасходнаяНакладнаяТовары.Номенклатура.Артикул КАК Артикул,
    |   РасходнаяНакладнаяТовары.Номенклатура.Бренды КАК Бренды,
    |   РасходнаяНакладнаяТовары.Номенклатура.КатегорияТовара КАК КатегорияТовара,
    |   РасходнаяНакладнаяТовары.Количество
    |ИЗ
    |   Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары
    |ГДЕ
    |   РасходнаяНакладнаяТовары.Ссылка = &ТекущийДокумент
    |   И  РасходнаяНакладнаяТовары.Номенклатура.КатегорияТовара.Наименование = &Категория
    |УПОРЯДОЧИТЬ ПО
    |Бренды,
    |Код";
    
    Результат = ЗапросПоТоварам1.Выполнить();
    ВыборкаСтрок1 = Результат.Выгрузить();
 
ОбластьМакетаШапка1 = Макет.ПолучитьОбласть("ШапкаДинамическая");
    ТабДокумент.Вывести(ОбластьМакетаШапка1);
    К=0; 
    НН=Справочники.Номенклатура.ПустаяСсылка();
    Кол=0;
    ОбластьМакета1 = Макет.ПолучитьОбласть("Строка");
    Для Каждого ВыборкаСтрокТовары Из ВыборкаСтрок1 Цикл
            Если НЕ НН.Пустая() Тогда 
            Если НН<>ВыборкаСтрокТовары.Номенклатура Тогда
                К=К+1;
                ОбластьМакета1.Параметры.НомерСтроки      = К;
                ОбластьМакета1.Параметры.Товар     = НН;
                ОбластьМакета1.Параметры.Количество      = Кол;
                ТабДокумент.Вывести(ОбластьМакета1);
                Кол=0;
            КонецЕсли; 
        КонецЕсли; 
        НН=ВыборкаСтрокТовары.Номенклатура;
    Если ВыборкаСтрокТовары.ХарактеристикаНоменклатуры.Наименование = "40" Тогда
        ОбластьМакета1.Параметры.к40 =   ВыборкаСтрокТовары.Количество;
    ИначеЕсли ВыборкаСтрокТовары.ХарактеристикаНоменклатуры.Наименование = "42" Тогда
        ОбластьМакета1.Параметры.к42 =   ВыборкаСтрокТовары.Количество;
    ИначеЕсли ВыборкаСтрокТовары.ХарактеристикаНоменклатуры.Наименование = "39" Тогда
        ОбластьМакета1.Параметры.к39 =   ВыборкаСтрокТовары.Количество;
    ИначеЕсли ВыборкаСтрокТовары.ХарактеристикаНоменклатуры.Наименование = "40/5" Тогда
        ОбластьМакета1.Параметры.к405 =  ВыборкаСтрокТовары.Количество;
    ИначеЕсли ВыборкаСтрокТовары.ХарактеристикаНоменклатуры.Наименование = "41" Тогда
        ОбластьМакета1.Параметры.к41 =   ВыборкаСтрокТовары.Количество;
    КонецЕсли;
        ОбластьМакета1.Параметры.Бренды     = ВыборкаСтрокТовары.Бренды;
        ОбластьМакета1.Параметры.Артикул     = ВыборкаСтрокТовары.Артикул;
        ОбластьМакета1.Параметры.Код     = ВыборкаСтрокТовары.Код;
        Кол=Кол+ВыборкаСтрокТовары.Количество;
        
    КонецЦикла;   
    Если НЕ НН.Пустая() Тогда 
        К=К+1;
        ОбластьМакета1.Параметры.НомерСтроки      = К;
        ОбластьМакета1.Параметры.Товар     = НН;
        ОбластьМакета1.Параметры.Количество      = Кол;
        ТабДокумент.Вывести(ОбластьМакета1);
    КонецЕсли;
Проблема в следующем: при выводе на печать если в разных товарах в накладной набор ХарактеристикаНоменклатуры различается, то характеристики из предыдущей строки дублируются на следующую... Никак не приходит в голову, как это решить... Буду очень признателен за помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.02.2013, 12:19
Ответы с готовыми решениями:

Ошибка в печатной форме счета
Сделал ВПФ счет на оплату. Выскакивает ошибка: {ВнешняяОбработка.СчетНаОплатуПокупателю.МодульОбъекта(189,1)}: Ожидается ключевое слово...

Вывод заголовка в печатной форме
Привет, товарищи! Делал внешнюю печатную форму к документу &quot;Зарплата к выплате&quot;. Там всё простенько выводиться список сотрудников с...

Не выводится область в печатной форме
Сделал внешнюю печатную форму АктОбОказанииУслуг (переделал с типовой). Добавил туда область &quot;Доверенность&quot;. Заполняю, вывожу....

5
9 / 9 / 1
Регистрация: 22.02.2013
Сообщений: 27
22.02.2013, 12:40
простой способ - переместить строчку ОбластьМакета1 = Макет.ПолучитьОбласть("Строка"); в тело цикла
0
900 / 877 / 10
Регистрация: 15.03.2012
Сообщений: 2,680
22.02.2013, 12:45
Если честно Ваш код, слегка приводит в замешательство т.к. не понятно чего Вы хотите добиться.
Покажите сам макет печатной формы.
Объясните смысл вначале делать это:
Цитата Сообщение от gerksly Посмотреть сообщение
Если НЕ НН.Пустая() Тогда
* * * * * * Если НН<>ВыборкаСтрокТовары.Номенклатура Тогда
* * * * * * * * К=К+1;
* * * * * * * * ОбластьМакета1.Параметры.НомерСтроки * * *= К;
* * * * * * * * ОбластьМакета1.Параметры.Товар * * = НН;
* * * * * * * * ОбластьМакета1.Параметры.Количество * * *= Кол;
* * * * * * * * ТабДокумент.Вывести(ОбластьМакета1);
* * * * * * * * Кол=0;
* * * * * * КонецЕсли;*
* * * * КонецЕсли;
А потом это:
Цитата Сообщение от gerksly Посмотреть сообщение
Если НЕ НН.Пустая() Тогда
* * * * К=К+1;
* * * * ОбластьМакета1.Параметры.НомерСтроки * * *= К;
* * * * ОбластьМакета1.Параметры.Товар * * = НН;
* * * * ОбластьМакета1.Параметры.Количество * * *= Кол;
* * * * ТабДокумент.Вывести(ОбластьМакета1);
* * КонецЕсли;
0
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 70
22.02.2013, 12:50  [ТС]
Если бы все так просто было.. При таком способе код становится не работоспособным.. А как-то по другому?

Добавлено через 3 минуты
Смысл в том, что в накладной товар повторяется в каждой строке при разных характеристиках. Тут же происходит слияние в одну строку с уникальным наименованием товара, при этом характеристики по количеству распределяются в этой же строке по своим полям.
0
900 / 877 / 10
Регистрация: 15.03.2012
Сообщений: 2,680
22.02.2013, 12:54
Цитата Сообщение от gerksly Посмотреть сообщение
Смысл в том, что в накладной товар повторяется в каждой строке при разных характеристиках. Тут же происходит слияние в одну строку с уникальным наименованием товара, при этом характеристики по количеству распределяются в этой же строке по своим полям.
Тогда Вы ерунду какую то сделали.
Добавьте в запрос итог по номенклатуре, и делайте обход результата запроса по группировкам.
0
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 70
22.02.2013, 13:06  [ТС]
В нижнем куске в принципе только ТабДокумент.Вывести(ОбластьМакета1); можно оставить, а условие убрать, согласен.

Добавлено через 1 минуту
Код то работает, только именно с распределением характеристик по строкам сложность....

Добавлено через 7 минут
Попробую через итоги.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.02.2013, 13:06
Помогаю со студенческими работами здесь

Как упорядочить строки в печатной форме
Здравствуйте, подскажите как сделать печатную форму накладной. Строки в печатной форме по выбору пользователя могут быть упорядочены по:...

Дополнительные реквизиты документа в печатной форме 8.2 УТ 11
К документу ЗаказПоставщику сделана внешняя печатная форма. В документе имеется дополнительный реквизит &quot;Custemer Nr.&quot;. Код...

1с 8.2: Разбивает Строки В Печатной Форме Накладной
Добрый день! Нужна помощь профессионалов по такому вопросу: Платформа 1С:Предприятие 8.2 релиз 8.2.12.80 Конфигурация...

Время на печатной форме документа в ТиС 7.7
Доброго всем дня! Помогите пожалуйста вывести время проведения документа (Чек ККМ) на печатную форму(товарный чек).Версия ТиС 7.7 . Зарание...

Как Вывести Заголовок В Печатной Форме
Привет, товарищи! Делал внешнюю печатную форму к документу &quot;Зарплата к выплате&quot;. Там всё простенько выводиться список сотрудников с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru