Имя: Пароль:
1C
1С v8
Сортировка 1с 8.2 печать цеников и этикеток
0 Zelenivek
 
17.10.11
15:52
При печати этикеток, программа сортирует товар хаотично,не важно в каком порядке он был в документе и не важно из какого докумена посылается печать,причем когда запускается обработка показыает одну очередность, при предварительном просмотре уже третью,по какому принципу он сортирует так понять и не смог,артикул,код товара,алфавитный порядок не учитывает.Но порядок определнный есть.
С 8.2 столкнулся первый раз,может где галкочку надо поставить или еще чего кто подскажет... с 8.1 все намного проще.
Barcode с диска ИТС стоит.
Версия 1С:Предприятие 8.2 8.2.13.219
Розница, редакция 2.0 (2.0.2.6)
1 Zelenivek
 
17.10.11
16:39
Запустил демо версию, из нее печать выходит точно также.Кто нибудь подскажите в чем дело,пробывал уже на 3 компьютерах.Девченки матерятьтся клея этикетки т.к. свыше 2000 позиций и все в разноброс.
2 Адинэснег
 
17.10.11
16:41
Конфигуратор
3 Zelenivek
 
17.10.11
16:47
Смотрел, что именно за это отвечает,конфа типовая.В самой обработке  смотреть?
4 Zelenivek
 
17.10.11
17:16
Что именно за это отвечает?Помогите новичку..плиз..(

УстановитьЭлементОтбораСКД(КомпоновщикНастроек, ИмяПараметра, ЗначениеПараметра, Использование = Истина)

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

КонецФункции // НайтиЭлементОтбораСКД()
5 Zelenivek
 
17.10.11
17:18
Процедура ЗаполнитьТаблицуТоваровНаСервере(ПроверятьЗаполнение = Истина, Сохранять = Истина)
       
   Если ПроверятьЗаполнение И ЭтаФорма.ПроверитьЗаполнение() = Ложь Тогда
       Возврат;
   КонецЕсли;
   
   // Сохранение выбранных позиций для их последующего восстановления.
   Если Сохранять Тогда
       ТаблицаВыбранныеПозиции = Объект.Товары.Выгрузить();
   КонецЕсли;
   
   // Поля необходимые для вывода в таблицу товаров на форме.
   СтруктураНастроек = Обработки.ПечатьЭтикетокИЦенников.ПолучитьПустуюСтруктуруНастроек();
   
   СтруктураНастроек.ОбязательныеПоля.Добавить("Цена");
   СтруктураНастроек.ОбязательныеПоля.Добавить("Штрихкод");
   СтруктураНастроек.ОбязательныеПоля.Добавить("Количество");
   СтруктураНастроек.ОбязательныеПоля.Добавить("Номенклатура");
   Если ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры") Тогда
       СтруктураНастроек.ОбязательныеПоля.Добавить("Характеристика");
   КонецЕсли;
   Если ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры") Тогда
       СтруктураНастроек.ОбязательныеПоля.Добавить("Упаковка");
   КонецЕсли;
   СтруктураНастроек.ОбязательныеПоля.Добавить("ОстатокНаСкладе");
   
   // Шаблоны этикеток и ценников.
   СтруктураНастроек.ОбязательныеПоля.Добавить("Номенклатура.ВидНоменклатуры.ШаблонЭтикетки");
   СтруктураНастроек.ОбязательныеПоля.Добавить("Номенклатура.ВидНоменклатуры.ШаблонЦенника");
   
   СтруктураНастроек.ПараметрыДанных.Вставить("ВидЦены"    , Объект.ВидЦены);
   СтруктураНастроек.ПараметрыДанных.Вставить("МагазинДляЦен"    , Объект.МагазинДляЦен);
   СтруктураНастроек.ПараметрыДанных.Вставить("ПравилоЦенообразования" , Объект.ПравилоЦенообразования);
   СтруктураНастроек.ПараметрыДанных.Вставить("ЦеныПоВидуЦены" , Объект.ЦеныПоВидуЦены);    
   СтруктураНастроек.ПараметрыДанных.Вставить("ЦеныНаДату" , Объект.ЦеныНаДату);
   СтруктураНастроек.ПараметрыДанных.Вставить("ЦеныНазначенныеДействующие" , Объект.ЦеныНазначенныеДействующие);
   
   //СтруктураНастроек.ПараметрыДанных.Вставить("Склад"      , Объект.Склад);
   СтруктураНастроек.ПараметрыДанных.Вставить("Организация", Объект.Организация);
   СтруктураНастроек.КомпоновщикНастроек = КомпоновщикНастроек;
   
   Если Объект.ИсходныеДанные.Количество() > 0 ИЛИ ПечатьИзДокумента Тогда
       СтруктураНастроек.ИмяМакетаСхемыКомпоновкиДанных = "ПоляШаблона";
       СтруктураНастроек.ИсходныеДанные = Объект.ИсходныеДанные.Выгрузить();
   Иначе
       СтруктураНастроек.ИмяМакетаСхемыКомпоновкиДанных = "ПоляШаблонаБД";
   КонецЕсли;
   
   Объект.Товары.Очистить();
   
   // Загрузка сформированного списка товаров.
   СтруктураРезультата = Обработки.ПечатьЭтикетокИЦенников.ПодготовитьСтруктуруДанных(СтруктураНастроек);
   Для Каждого СтрокаТЧ Из СтруктураРезультата.ТаблицаТоваров Цикл
       
       НоваяСтрока = Объект.Товары.Добавить();
       НоваяСтрока.Номенклатура         = СтрокаТЧ.Номенклатура;
       
       Если ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры") Тогда
           НоваяСтрока.Характеристика       = СтрокаТЧ.Характеристика;
       КонецЕсли;
       Если ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры") Тогда
           НоваяСтрока.Упаковка             = СтрокаТЧ.Упаковка;
       КонецЕсли;
       
       НоваяСтрока.Цена                 = СтрокаТЧ.Цена;
       НоваяСтрока.Штрихкод             = СтрокаТЧ.Штрихкод;
       НоваяСтрока.ШаблонЦенника        = СтрокаТЧ[СтруктураРезультата.СоответствиеПолейСКДКолонкамТаблицыТоваров.Получить("Номенклатура.ВидНоменклатуры.ШаблонЦенника")];
       НоваяСтрока.ШаблонЭтикетки       = СтрокаТЧ[СтруктураРезультата.СоответствиеПолейСКДКолонкамТаблицыТоваров.Получить("Номенклатура.ВидНоменклатуры.ШаблонЭтикетки")];
       НоваяСтрока.ОстатокНаСкладе      = СтрокаТЧ.ОстатокНаСкладе;
       НоваяСтрока.КоличествоВДокументе = СтрокаТЧ.Количество;
       
       УстановитьКоличествоПоУмолчаниюВСтрокеТЧНаСервере(НоваяСтрока);
       
       // Восстановление позиций, сохраненных перед заполнением ТЧ.
       Если Сохранять Тогда
           ПараметрыОтбора = Новый Структура();
           ПараметрыОтбора.Вставить("Номенклатура", НоваяСтрока.Номенклатура);
           Если ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры") Тогда
               ПараметрыОтбора.Вставить("Характеристика", НоваяСтрока.Характеристика);
           КонецЕсли;
           Если ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры") Тогда
               ПараметрыОтбора.Вставить("Упаковка", НоваяСтрока.Упаковка);
           КонецЕсли;
           НайденныеСтроки = ТаблицаВыбранныеПозиции.НайтиСтроки(ПараметрыОтбора);
           Если НайденныеСтроки.Количество() > 0 Тогда
               ЗаполнитьЗначенияСвойств(НоваяСтрока, НайденныеСтроки[0],"ШаблонЦенника, ШаблонЭтикетки, КоличествоЦенников, КоличествоЭтикеток");    
           КонецЕсли;
       КонецЕсли;
       НоваяСтрока.Выбран = ПроверитьВозможностьВыбораТовара(НоваяСтрока, Режим);
       
   КонецЦикла;
   
   Элементы.Товары.Обновить();
   
КонецПроцедуры // ЗаполнитьТаблицуТоваровНаСервере()
6 Zelenivek
 
17.10.11
17:30
Сотрировку я добавил в форму,но суть то в том что выводит на предварительный просмотр то что сама программа хочет,печатает именно то что с предварительного просмотра.Как сделать чтоб на печать выходило в той последовательности как в "печать этикеток из документа"?
7 Zelenivek
 
17.10.11
19:26
Может кто нибудь уточнит на что обратить внимание?Или код  свой выложит у кого проблем с этим нет.Очень нужно.
8 Zelenivek
 
18.10.11
07:19
Что волшебства не будет?
9 Oleg_Kag
 
18.10.11
07:40
Если печатать из предварительного просмотра, то последовательность совпадает (то что видишь на экране и то что печатается)?
10 Zelenivek
 
18.10.11
07:50
Да, из предварительного просмотра то и печатается.А вот почему не из документа(обработки) "печать этикеток из документа" берется последовательность не понятно(
11 Ткачев
 
18.10.11
08:58
В обработке печать этикеток и ценников, в макете "ПоляШаблона", в запросе в пакете "Запрос пакета 7", есть вкладка "Порядок", что туда вставишь так и будет сортировать.
Ну а далее думай как сортировку сделать пользовательской.
12 Zelenivek
 
18.10.11
09:59
Большое спасибо!
Поставил ИсходныеДанныеПоследнийЗапрос.Номенклатура.Наименование


Сразу при открытие все по порядку и при печати тот же порядок.

Хорошо а такой вопрос, а как чтоб он порядок брал из документа с которого печать посылается, в 8.1 так было.
13 Поручик
 
18.10.11
10:14
(12) Немного переколбасить обработку печати или процедуры ПодготовитьСтруктуруДанных() в модулях команд ПечатьЭтикеток/ПечатьЦенников, так как данные из документа в обработку приходят в обезличенном виде.