С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Vi_ru_S
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 20
1

Розница 2.1. Вывод информации о гарантии на товар при печати чека.

16.11.2016, 12:23. Просмотров 894. Ответов 3
Метки нет (Все метки)

Доброго времени суток уважаемые форумчане. Прошу сильно не пинать слабо понимающего человека по программированию Суть вообщем следующая. Нужно сделать так что бы при печати товарного чека выводилась информация о сроки гарантии. Сама обработка работает нормально все заполняется и выводиться как надо за исключением срока гарантии. Подцепить информацию о гарантии я решил из дополнительных реквизитов и вроде бы запрос составил, но никак не могу запихнуть в .Параметры информацию о гарантии. Помогите разобраться пожалуйста. Конфигурация Розница 2.1
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
Функция СведенияОВнешнейОбработке() Экспорт
 
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
 
    Наименование = УказатьНаименованиеВнешнейПечатнойФормы();
 
    МассивНазначений.Добавить(ПолучитьМетаданныеДокументаПечати());
    //может быть - ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("Наименование", Наименование);
    ПараметрыРегистрации.Вставить("Версия", "1.1");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    //так будет выглядеть описание печ.формы для пользователя
    ПараметрыРегистрации.Вставить("Информация", Наименование);
 
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, Наименование, УказатьНаименованиеКомандыПечати(), "ВызовСерверногоМетода", Истина, "ПечатьMXL");
 
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
 
    Возврат ПараметрыРегистрации;
 
КонецФункции
 
Функция ПолучитьТаблицуКоманд()
 
    Команды = Новый ТаблицаЗначений;
    //как будет выглядеть описание печ.формы для пользователя
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    //имя макета печ.формы
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    //ВызовСерверногоМетода
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    
    Возврат Команды;
КонецФункции
 
Функция УказатьНаименованиеВнешнейПечатнойФормы()
 
    Наименование = ЭтотОбъект.Метаданные().Представление();
    Возврат Наименование;
 
КонецФункции
 
Функция УказатьНаименованиеКомандыПечати()
 
    Наименование = ЭтотОбъект.Метаданные().ПолноеИмя();
    Возврат Наименование;
 
КонецФункции
 
Функция ПолучитьМетаданныеДокументаПечати()
 
    ПолноеИмя = Документ.Метаданные().ПолноеИмя();
    Возврат ПолноеИмя;
 
КонецФункции
 
Функция ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
 
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда. Представление = Представление;
    НоваяКоманда. Идентификатор= Идентификатор;
    НоваяКоманда. Использование= Использование;
    НоваяКоманда. ПоказыватьОповещение= ПоказыватьОповещение;
    НоваяКоманда. Модификатор= Модификатор;
 
КонецФункции
 
Функция ПечатьФормы(МассивОбъектов) Экспорт
    КолонкаКодов       = ФормированиеПечатныхФормСервер.ИмяДополнительнойКолонки();
    ВыводитьКоды       = ЗначениеЗаполнено(КолонкаКодов);
    
    ТабличныйДокумент = новый ТабличныйДокумент;
 
    Макет = ПолучитьМакет("Макет");
 
    ОбластьЗаголовок                 = Макет.ПолучитьОбласть("Заголовок");
    ОбластьИНН                       = Макет.ПолучитьОбласть("ИНН");
    ОбластьПоставщик                 = Макет.ПолучитьОбласть("Поставщик");
    ОбластьМагазин                   = Макет.ПолучитьОбласть("Магазин");  
    ОбластьШапкаТаблицы              = Макет.ПолучитьОбласть("ШапкаТаблицы");
 
    ОбластьСтрокаНомера              = Макет.ПолучитьОбласть("Строка|НомерСтроки");
    ОбластьСтрокаКолонкаКодов        = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
    ОбластьСтрокаТовар               = Макет.ПолучитьОбласть("Строка|Товар");
    ОбластьСтрокаСерийныеНомера      = Макет.ПолучитьОбласть("Строка|СерийныеНомера");
    ОбластьСтрокаДанные              = Макет.ПолучитьОбласть("Строка|Данные");
    ОбластьСуммаБезСкидки            = Макет.ПолучитьОбласть("Строка|СуммаБезСкидки");
    ОбластьСуммаСкидки               = Макет.ПолучитьОбласть("Строка|СуммаСкидки");
    ОбластьСумма                     = Макет.ПолучитьОбласть("Строка|Сумма");
                
    Для Каждого СсылкаНаОбъект из МассивОбъектов Цикл
        
        СведенияОПоставщике = ФормированиеПечатныхФормСервер.СведенияОЮрФизЛице(СсылкаНаОбъект.Организация, СсылкаНаОбъект.Дата);
            
        ОбластьЗаголовок.Параметры.ТекстЗаголовка = "Товарный чек № "+СсылкаНаОбъект.Номер+" от "+СсылкаНаОбъект.Дата;
        ОбластьПоставщик.Параметры.ПредставлениеПоставщика = СсылкаНаОбъект.Организация;
        ОбластьИНН.Параметры.ПредставлениеИНН = СведенияОПоставщике.ИНН;
        ОбластьМагазин.Параметры.Магазин = СсылкаНаОбъект.Магазин;
 
        
        ТабличныйДокумент.Вывести(ОбластьЗаголовок);
        ТабличныйДокумент.Вывести(ОбластьПоставщик);
        ТабличныйДокумент.Вывести(ОбластьИНН);
        ТабличныйДокумент.Вывести(ОбластьМагазин);
 
        ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
        //Выводим строки с товаром
        Запрос = новый запрос;
        Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
        Запрос.Текст = "ВЫБРАТЬ
                       |    ЧекККМТовары.Номенклатура КАК Номенклатура,
                       |    ЧекККМТовары.Сумма,
                       |    ЧекККМТовары.Цена,
                       |    ЧекККМТовары.Количество,
                       |    ЧекККМТовары.НомерСтроки,
                       |    " + ?(ВыводитьКоды, "ЧекККМТовары.Номенклатура." + КолонкаКодов +" КАК КолонкаКодов,", "") + "
                       |    ЧекККМТовары.Номенклатура.ДополнительныеРеквизиты.(
                       |        Свойство.Ссылка КАК Название,
                       |        Значение КАК Значение
                       |    ) КАК Гарантия
                       |ИЗ
                       |    Документ.ЧекККМ.Товары КАК ЧекККМТовары
                       |ГДЕ
                       |    ЧекККМТовары.Ссылка = &Ссылка";
        
        Выборка = Запрос.Выполнить().Выбрать();
        
        ИтогоСуммаБезСкидки = 0;
        ИтогоСуммаСкидки = 0;
        ИтогоСумма = 0;
        ВсегоНаименований = 0;
        Пока Выборка.Следующий() Цикл
            //ЗаполнитьЗначенияСвойств(ОбластьСтрокаНомера.Параметры,Выборка);
            
            //  ОбластьЗаголовок.Параметры.ТекстЗаголовка = "Товарный чек № "+СсылкаНаОбъект.Номер+" от "+СсылкаНаОбъект.Дата;
        
            ОбластьСтрокаНомера.Параметры.НомерСтроки =  Выборка.НомерСтроки;
            ОбластьСтрокаКолонкаКодов.Параметры.Артикул = Выборка["КолонкаКодов"];
            ОбластьСтрокаДанные.Параметры.Товар = Выборка.Номенклатура;
            ОбластьСтрокаДанные.Параметры.СрокГарантии = Выборка["Гарантия"];//.Гарантия["Гарантия"].Значение; // ВОТ СЮДА МНЕ НУЖНО ВЫВЕСТИ ДОПОЛНИТЕЛЬНЫЙ РЕКВИЗИТ
            ОбластьСтрокаДанные.Параметры.Количество = Выборка.Количество;
            ОбластьСтрокаДанные.Параметры.ЕдиницаИзмерения = "шт";
            ОбластьСтрокаДанные.Параметры.Цена = Выборка.Цена;
            ОбластьСуммаБезСкидки.Параметры.СуммаБезСкидки = Выборка.Количество * Выборка.Цена;
            ОбластьСуммаСкидки.Параметры.Скидка = ОбластьСуммаБезСкидки.Параметры.СуммаБезСкидки - Выборка.Сумма;
            ОбластьСумма.Параметры.Сумма = Выборка.Сумма;
            //ИтогоСумма = Выборка.Сумма;
             //    СуммаБезСкидки
            ТабличныйДокумент.Вывести(ОбластьСтрокаНомера);
            ТабличныйДокумент.Присоединить(ОбластьСтрокаКолонкаКодов);
           // ТабличныйДокумент.Присоединить(ОбластьСтрокаТовар);
            //ТабличныйДокумент.Присоединить(ОбластьСтрокаСерийныеНомера);
            ТабличныйДокумент.Присоединить(ОбластьСтрокаДанные);
            ТабличныйДокумент.Присоединить(ОбластьСуммаБезСкидки);
            ТабличныйДокумент.Присоединить(ОбластьСуммаСкидки);             
            ТабличныйДокумент.Присоединить(ОбластьСумма);
            
            ИтогоСуммаБезСкидки = ИтогоСуммаБезСкидки + (Выборка.Количество * Выборка.Цена);
            ИтогоСуммаСкидки = ИтогоСуммаСкидки + (ОбластьСуммаБезСкидки.Параметры.СуммаБезСкидки - Выборка.Сумма);
            ИтогоСумма = ИтогоСумма + Выборка.Сумма;
            ВсегоНаименований = ВсегоНаименований + Выборка.Количество;
        КонецЦикла;
        //Конец
        
        ОбластьИтого                     = Макет.ПолучитьОбласть("Итого");
        ОбластьСуммаПрописью             = Макет.ПолучитьОбласть("СуммаПрописью");
        ОбластьГарантийныеОбязательства  = Макет.ПолучитьОбласть("ГарантийныеОбязательства");
        
        
        ОбластьИтого.Параметры.ВсегоБезСкидок = ИтогоСуммаБезСкидки;
        ОбластьИтого.Параметры.ВсегоСкидок = ИтогоСуммаСкидки;
        ОбластьИтого.Параметры.Сумма = ИтогоСумма;
        
        ТабличныйДокумент.Вывести(ОбластьИтого);
        
        //Вывести Сумма прописью
        ТекстИтоговойСтроки = НСтр("ru = 'Всего наименований %ВсегоНаименований%, на сумму %Итого%'");
        
        ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%ВсегоНаименований%", ВсегоНаименований);
        ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%Итого%", ФормированиеПечатныхФормСервер.ФорматСумм(ИтогоСумма));
        
        ОбластьСуммаПрописью.Параметры.ИтоговаяСтрока = ТекстИтоговойСтроки;
        ОбластьСуммаПрописью.Параметры.СуммаПрописью  = ФормированиеПечатныхФормСервер.СформироватьСуммуПрописью(ИтогоСумма);
        
        ТабличныйДокумент.Вывести(ОбластьСуммаПрописью);
        //Конец
        
        
        
        ТабличныйДокумент.Вывести(ОбластьГарантийныеОбязательства);
        
        ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЦикла;
    
    возврат ТабличныйДокумент;
КонецФункции
 
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
 
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        УказатьНаименованиеКомандыПечати(),
        УказатьНаименованиеВнешнейПечатнойФормы(),
        ПечатьФормы(МассивОбъектов));
 
КонецПроцедуры
Добавлено через 1 минуту
Цитата Сообщение от Vi_ru_S Посмотреть сообщение
ОбластьСтрокаДанные.Параметры.СрокГарантии = Выборка["Гарантия"];//.Гарантия["Гарантия"].Значение; // ВОТ СЮДА МНЕ НУЖНО ВЫВЕСТИ ДОПОЛНИТЕЛЬНЫЙ РЕКВИЗИТ
Вот сюда собственно и нужно вставить результат запроса по гарантии но не могу смекнуть как 147 строка кода
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2016, 12:23
Ответы с готовыми решениями:

Выбор оборудования при печати чека
Доброго времени суток. Такой вопрос: 1с 7.7, магазин от рарус. Вообще эта...

УТ 10.3. Ошибка при печати чека ККМ
Добрый день Два вопроса отрыл кассовую смену и теперь закрыть не могу и...

Розница 2.2. Печать чека и перемещение товаров между магазинами(складами)
Всем здравствуйте. не давно начал работать с 1с и имеется очень важный вопрос....

"Не выбран товар или группа товаров!" при печати в ТиС 7.7 9.2
Не разобрался как поставить дату в ценнике в ТиС 7.7 9.2. Вот тогда два других...

Вывод информации об обмене валюты в виде чека
Подскажите как сделать чтоб в отдельное какое нибудь окошко или текстовый...

3
GreenkA
Модератор
Эксперт 1С
2466 / 1818 / 513
Регистрация: 25.06.2009
Сообщений: 6,688
16.11.2016, 13:56 2
Vi_ru_S, измените текст запроса. Берите таблицу ДополнительныеРеквизиты из справочника Номенклатура и соединяйте с таблицей документа ЧекиККМ по Номенклатуре правым соединением(основная таблица - ЧекиККМ). При этом делайте условие по Свойству(поиск через ПланыВидовХарактеристик нужного свойства - Гарантия). Из таблицы НоменклатураДополнительныеРеквизиты вам нужно поле Значение - это и будет ваша гарантия.
1
Vi_ru_S
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 20
16.11.2016, 15:09  [ТС] 3
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
"ВЫБРАТЬ
                       |    ЧекККМТовары.Номенклатура КАК Номенклатура,
                       |    ЧекККМТовары.Сумма,
                       |    ЧекККМТовары.Цена,
                       |    ЧекККМТовары.Количество,
                       |    ЧекККМТовары.НомерСтроки,
                       |    " + ?(ВыводитьКоды, "ЧекККМТовары.Номенклатура." + КолонкаКодов +" КАК КолонкаКодов,", "") + "
                       |    НоменклатураДополнительныеРеквизиты.Ссылка,
                       |    НоменклатураДополнительныеРеквизиты.Значение
                       |ИЗ
                       |    Документ.ЧекККМ.Товары КАК ЧекККМТовары
                       |        ПРАВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
                       |        ПО (ЧекККМТовары.Номенклатура = НоменклатураДополнительныеРеквизиты.Свойство)
                       |ГДЕ
                       |    ЧекККМТовары.Ссылка = &Ссылка";
Поменял на такой запрос и послетали ОбластьСтрокиДанные.Параметры
0
GreenkA
Модератор
Эксперт 1С
2466 / 1818 / 513
Регистрация: 25.06.2009
Сообщений: 6,688
17.11.2016, 10:30 4
Vi_ru_S, я писала про правое соединение, если порядок таблиц: НоменклатураДополнительныеРеквизиты - ЧекиККМ, основная таблица - документ ЧекиККМ. Т.е. в вашем случае соединение должно быть левым.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2016, 10:30

Appcrash c0000005 при печати чека ккм
Добрый день уважаемые форумчане !!! Возникла такая проблема кассир сидит на...

Отмена печати чека
Приветствую народ. Подскажите пожалуйста новичку. Есть программа написанная на...

Настройка печати чека для 77 как в 82
Здравствуйте. У нас стоит фискальный регистратор компании АТОЛ и установлен его...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru