Не сохраняются настройки принтера этикеток

1. TorLink 25.02.14 19:25 Сейчас в теме
Из 1С перестало корректно печатать этикетки из номенклатуры.
формат не 57х40 а 57х50,8. При этом в панеле устройств и принтеров в настройке изменил и сохранил и оно сохранилось 57х40.
Но если печатать из 1С, то он всё равно где-то берет 57х50,8.
Кеш чистил, реестр почистил весь где упоминалось TLP 2824. системную папку spool тоже почистил. Всё равно нестройки беруться кривые.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
10. Сергей Шевчук 16.03.14 00:00 Сейчас в теме
В свойствах принтера, в закладке "прочие" поставить галочку -всегда использовать параметры драйвера.(1) TorLink,
user1706724; user712426; Alav; fixin; criptid; ZuError; Cyberboy; +7 Ответить
11. user816521 22.08.17 12:18 Сейчас в теме
(10) Спасибо Большое. Принтер тоже Зебра хоть и другой модели. Помогло.
25. fixin 4253 12.01.23 20:12 Сейчас в теме
(10)
В свойствах принтера, в закладке "прочие" поставить галочку -всегда использовать параметры драйвера.

да! Все никак высота этикетки не сохранялась! Я победил
2. overdriver 25.02.14 21:25 Сейчас в теме
Выкинуть глючную зебру! :) Но, конечно, не вариант. Дрова на этот принтер очень глючные. Я пробовал задавать размеры, но они постоянно слетали в самый неподходящий момент. Делал обычно так: Масштаб по ширине страницы, размер этикетки выбирал из стандартных заведомо больше,(можно даже в 2-3 раза, чем больше, тем проще настраивать), а потом подбирал отступами. Точно не вспомню какой угол основной, кажется верхний левый. Подбираешь верхним и левым отступом чтобы угол попал на этикетку, а потом правым полем задаешь сжатие этикетки, чтобы попала в размер. Нижний отступ задаешь так, чтобы примерно попасть и вторая пустая не печаталась. Проверено на нескольких разных зебрах, обычно за 15 минут и 10-15 тестовых этикетов все легко подбирается.
3. Sanella_nt 26.02.14 04:27 Сейчас в теме
Посмотри в отладчике откуда 1С берёт эти настройки. Потому-что если она их откуда-то берёт значит по логике вещей они где-то есть и скорее всего ты когда удалял их отовсюду что-то упустил
4. Fialka88 27.02.14 17:31 Сейчас в теме
При удаление необходимо удалить все настройки этого принтера. Потом все установить и произвести настройку только через 1С, и там привязываеться только к тому пользователю под которым производиться настройка.
5. TorLink 27.02.14 19:07 Сейчас в теме
(4) Fialka88, откуда их удалить?
6. sergfox 13.03.14 21:30 Сейчас в теме
1. У пользователя в настройкам может быть заданы размеры этикетки по умолчанию.
2. 1С открывается локально или в RDP.
7. TorLink 14.03.14 00:30 Сейчас в теме
(6) sergfox, ну так и где они заданы, яж их меняю, закрываю, а они опять старые.
2. локально.
9. sergfox 15.03.14 22:13 Сейчас в теме
(7) TorLink, О какой конфигурации идет речь? В Управлении сервисным центром (сделана на основе УТ 10), в параметрах пользователей есть параметры: может ли пользователь печатать этикетки или нет, а так же размер этикетки по ширине и по высоте по умолчанию.
8. DarkDaemon 15.03.14 20:09 Сейчас в теме
В 1С в параметрах шаблона этикетки выбери "Предпросмотр" и там попробуй изменить параметры печати (обычно "Файл"-"Параметры страницы" или "Печать", уже не помню).
user847043; +1 Ответить
12. wermah 22.08.17 13:46 Сейчас в теме
На нужной печатной форме нажимаем Файл - Параметры страницы - настраиваем нажимаем Ок, и так под каждым пользователем кому нужно. Параметры сохранятся под пользователями
13. CERBER 12.08.20 14:55 Сейчас в теме
Открываем ценник или этикетку в редакторе, прямо в 1С.
Над макетом печатной формы, есть ряд кнопок.
Тыкаем на первую кнопку, там выбираем нужный принтер, выставляем необходимые параметры печати, жмем на кнопку ПРИНТЕР, что бы заглянуть в свойства печати самого принтера, там выставляем заранее созданный ОБРАЗЕЦ бумаги с размерами.
Жмем ОК.

Открываем непосредственно обработку печати ценников и этикеток, и проверяем на первом попавшемся товаре.

Проверено на УТ 11.4
Прикрепленные файлы:
TigerS74; green35; REDnrg; criptid; user622881_nabokov77; fixin; YA_787394501; daab; wantingstew; sumpavig; antonius888; InJey; +12 Ответить
14. InJey 16.12.20 18:04 Сейчас в теме
(13)друже жаль нельзя больше лайков ставить
wantingstew; +1 Ответить
15. fixin 4253 27.04.21 19:41 Сейчас в теме
(13) а как быть если один макет на разных компьютерах и принтерах используется?
16. kobayoshi 20 12.09.21 23:40 Сейчас в теме
Можно поднять тему?
Ни при каких условиях у нас в УТ 11.4.13.148 (пробовал и 11.4.13.209 и 11.4.13.275) не сохраняются настройки печати некоторых печатных форм. Закрыл-открыл форму, и всё по новой. Пока заметил на печати этикеток и возврате от покупателя. На разных компьютерах. В разных режимах. В разных базах. На платформах 8.3.19.1229 и 8.3.19.1264. Даже принтеры разные пробовал... Все равно при открытии печатной формы всё выглядит так, будто я её первый раз открыл. Куда копать?
17. kobayoshi 20 14.09.21 12:22 Сейчас в теме
(16) Чудо случилось. В общем настройки печати я менял под разными пользователями безрезультатно. А потом обычному продавцу дал права админа, из-под него зашёл в настройки макета этикетки. Там поменял параметры печати и нажал Записать и закрыть. После этого параметры печати стали те, что я указал у всех пользователей. Даже у тех, которых я не трогал. Колдунство какое-то...
18. sidsukana 14.11.21 10:58 Сейчас в теме
Если настроить принтер по умолчанию и все настройки печати в шаблоне то они работают только на том компьютере на котором были сделаны. На складе 2 зоны с моноблоками, на обоих 1 пользователь кладовщик, разные только принтеры. Если на одном моноблоке настраиваем использование принтера этикеток - на нем все работает. Если попытаться использовать печать этикеток на втором моноблоке - там выбирается обычный принтер. Тоже самое будет если поменять принтер на 2м моноблоке, на 1 начинает другой подставляться.
19. kobayoshi 20 24.11.21 17:21 Сейчас в теме
(18) На днях поставили на складе ещё один принтер этикеток и да... Делаешь настройки на одном компьютере, слетают на другом. Делаешь на другом, слетают на первом. Хоть плачь(
20. sidsukana 25.11.21 11:22 Сейчас в теме
(19) Я решил пока так: добавил регистр связей принтеров, с ключами (ИмяПК, Пользователь, ШаблонЭтикетки, ИмяПринтера) и подставляю имя принтера в зависимости от того где печать выполняется в данный момент. Я так понял в 1С хранится некий индекс из массива принтеров системы, по нему берется имя принтера и подставляется. Если компы отличаются то и этот системный массив тоже разный, и по одному и тому же индексу разные принтеры - отсюда и проблема.
21. kobayoshi 20 25.11.21 15:20 Сейчас в теме
(20) А можно подробнее? Регистр создать можно. Но в каком месте подставлять имя принтера?
22. sidsukana 10.03.22 16:44 Сейчас в теме
(21) Извини за некропост, очень долго не заходил так как проблему вообще решил по другому в итоге, но этот вариант тоже работал.

Расширил метод с изменением: Обработки.ПечатьЭтикетокИЦенников.МодульМенеджера.СформироватьПечатныеФормыЭтикетокИЦенниковТоваров
&ИзменениеИКонтроль("СформироватьПечатныеФормыЭтикетокИЦенниковТоваров")
Процедура СТ_СформироватьПечатныеФормыЭтикетокИЦенниковТоваров1(ДанныеПечати, ОбъектыПечати, КоллекцияПечатныхФормБСП)

    ИсходныеДанные = ПолучитьИзВременногоХранилища(ДанныеПечати.Товары);

    НужноПечататьЭтикетки = Ложь;
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФормБСП, "ЭтикеткаТовары") Тогда
        НужноПечататьЭтикетки = Истина;
        КоллекцияПечатныхФормБСП.Удалить(КоллекцияПечатныхФормБСП.Найти(ВРег("ЭтикеткаТовары"), "ИмяВРЕГ"));
    КонецЕсли;

    НужноПечататьЦенники = Ложь;
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФормБСП, "ЦенникТовары") Тогда
        НужноПечататьЦенники = Истина;
        КоллекцияПечатныхФормБСП.Удалить(КоллекцияПечатныхФормБСП.Найти(ВРег("ЦенникТовары"), "ИмяВРЕГ"));
    КонецЕсли;

    СтруктураНастроек = СтруктураНастроек();
    СтруктураНастроек.ОбязательныеПоля.Добавить("КоличествоЦенниковДляПечати");
    СтруктураНастроек.ОбязательныеПоля.Добавить("КоличествоЭтикетокДляПечати");
    СтруктураНастроек.ОбязательныеПоля.Добавить("ШаблонЦенникаДляПечати");
    СтруктураНастроек.ОбязательныеПоля.Добавить("ШаблонЭтикеткиДляПечати");
    СтруктураНастроек.ОбязательныеПоля.Добавить("Номенклатура");
    Если ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры") Тогда
        СтруктураНастроек.ОбязательныеПоля.Добавить("Характеристика");
    КонецЕсли;
    Если ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры") Тогда
        СтруктураНастроек.ОбязательныеПоля.Добавить("Упаковка");
    КонецЕсли;

    СтруктураНастроек.ИмяМакетаСхемыКомпоновкиДанных = "ПоляШаблонаПечатьТовары";

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

    // Заполняем коллекцию обязательных полей и формируем соответствие шаблонов.
    Для Каждого КлючИЗначение ИЗ СоответствиеШаблонов Цикл

        ШаблонЭтикетокИЦенников = КлючИЗначение.Ключ;

        Если ЗначениеЗаполнено(ШаблонЭтикетокИЦенников) Тогда
            СтруктураШаблона = КлючИЗначение.Ключ.Шаблон.Получить();
        Иначе
            СтруктураШаблона = ДанныеПечати.СтруктураМакетаШаблона;
        КонецЕсли;

        // Структура шаблонов.
        СтруктураНастроек.СоответствиеШаблоновИСтруктурыШаблонов.Вставить(ШаблонЭтикетокИЦенников, СтруктураШаблона);

        // Добавляем в массив обязательных полей поля, присутствующие в печатной форме ценника.
        Для Каждого Элемент Из СтруктураШаблона.ПараметрыШаблона Цикл
            СтруктураНастроек.ОбязательныеПоля.Добавить(Элемент.Ключ);
        КонецЦикла;

    КонецЦикла;

    СтруктураНастроек.ПараметрыДанных.Вставить("Организация", ДанныеПечати.Организация);

    СтруктураНастроек.ПараметрыДанных.Вставить("ПравилоОбмена",                 ДанныеПечати.ПравилоОбмена);
    СтруктураНастроек.ПараметрыДанных.Вставить("МаксимальныйКодВесовогоТовара", ДанныеПечати.МаксимальныйКодВесовогоТовара);
    СтруктураНастроек.ПараметрыДанных.Вставить("ПравилоВыгрузкиВВесы",          ДанныеПечати.ПравилоВыгрузкиВВесы);

    СтруктураНастроек.ПараметрыДанных.Вставить("ВидЦены",       ДанныеПечати.ВидЦены);
    СтруктураНастроек.ПараметрыДанных.Вставить("Дата",          ДанныеПечати.Дата);

    СтруктураНастроек.ПараметрыДанных.Вставить("ВидЦеныДополнительно", ДанныеПечати.ВидЦеныДополнительно);
    СтруктураНастроек.ПараметрыДанных.Вставить("ДатаДополнительно",    ДанныеПечати.ДатаДополнительно);

    СтруктураНастроек.ИсходныеДанные = ИсходныеДанные;

    #Область ПодготовкаСтруктурыДанныхШаблона

    СтруктураРезультата = ПодготовитьСтруктуруДанных(СтруктураНастроек, "Товары");

    #КонецОбласти

    #Область ФормированиеТабличногоДокумента

    Эталон = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("Эталон");
    КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;

    // Подготовка коллекции печатных форм.
    КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
    КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
    КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета");
    КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент");
    КоллекцияПечатныхФорм.Колонки.Добавить("ИмяКолонкиКоличество");
    КоллекцияПечатныхФорм.Колонки.Добавить("ИмяКолонкиШаблон");
    КоллекцияПечатныхФорм.Колонки.Добавить("Шаблон");

    Для Каждого КлючИЗначение Из СтруктураНастроек.СоответствиеШаблоновИСтруктурыШаблонов Цикл

        Если ((ЗначениеЗаполнено(КлючИЗначение.Ключ) И КлючИЗначение.Ключ.Назначение = Перечисления.НазначенияШаблоновЭтикетокИЦенников.ЭтикеткаДляТоваров) ИЛИ Не ЗначениеЗаполнено(КлючИЗначение.Ключ))
            И НужноПечататьЭтикетки Тогда

            ПечатнаяФорма = КоллекцияПечатныхФорм.Добавить();
            ПечатнаяФорма.ИмяМакета            = "Этикетка: "+КлючИЗначение.Ключ;
            ПечатнаяФорма.СинонимМакета        = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Этикетка: %1';
            |en = 'Label: %1'"), КлючИЗначение.Ключ);
            ПечатнаяФорма.ИмяКолонкиКоличество = "КоличествоЭтикетокДляПечати";
            ПечатнаяФорма.ИмяКолонкиШаблон     = "ШаблонЭтикеткиДляПечати";
            ПечатнаяФорма.Шаблон = КлючИЗначение.Ключ;

        КонецЕсли;

        Если ((ЗначениеЗаполнено(КлючИЗначение.Ключ) И КлючИЗначение.Ключ.Назначение = Перечисления.НазначенияШаблоновЭтикетокИЦенников.ЦенникДляТоваров) ИЛИ Не ЗначениеЗаполнено(КлючИЗначение.Ключ))
            И НужноПечататьЦенники Тогда

            ПечатнаяФорма = КоллекцияПечатныхФорм.Добавить();
            ПечатнаяФорма.ИмяМакета            = "Ценник: " + КлючИЗначение.Ключ;
            ПечатнаяФорма.СинонимМакета        = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Ценник: %1';
            |en = 'Price tag: %1'"), КлючИЗначение.Ключ);
            ПечатнаяФорма.ИмяКолонкиКоличество = "КоличествоЦенниковДляПечати";
            ПечатнаяФорма.ИмяКолонкиШаблон     = "ШаблонЦенникаДляПечати";
            ПечатнаяФорма.Шаблон = КлючИЗначение.Ключ;

        КонецЕсли;

    КонецЦикла;

    Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл

        НомерКолонки = 0;
        НомерРяда = 0;

        Для Каждого СтрокаТовары Из СтруктураРезультата.Таблица Цикл

            Если СтрокаТовары[ПечатнаяФорма.ИмяКолонкиКоличество] > 0 И СтрокаТовары[ПечатнаяФорма.ИмяКолонкиШаблон] = ПечатнаяФорма.Шаблон Тогда

                СтруктураШаблона = СтруктураНастроек.СоответствиеШаблоновИСтруктурыШаблонов.Получить(СтрокаТовары[ПечатнаяФорма.ИмяКолонкиШаблон]);

                Если ПечатнаяФорма.ТабличныйДокумент = Неопределено Тогда
                    ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
                КонецЕсли;

                Область = СтруктураШаблона.МакетЭтикетки.ПолучитьОбласть(СтруктураШаблона.ИмяОбластиПечати);

                // Применение настроек табличного документа.
                ЗаполнитьЗначенияСвойств(ПечатнаяФорма.ТабличныйДокумент, СтруктураШаблона.МакетЭтикетки, , "ОбластьПечати");

                Для каждого ПараметрШаблона Из СтруктураШаблона.ПараметрыШаблона Цикл
                    Если ОбщегоНазначенияУТКлиентСервер.ЕстьРеквизитОбъекта(Область.Параметры, ПараметрШаблона.Значение) Тогда
                        НаименованиеКолонки = СтруктураРезультата.СоответствиеПолейСКДКолонкамТаблицы.Получить(Справочники.ШаблоныЭтикетокИЦенников.ИмяПоляВШаблоне(ПараметрШаблона.Ключ));
                        Если НаименованиеКолонки <> Неопределено Тогда
                            Область.Параметры[ПараметрШаблона.Значение] = СтрокаТовары[НаименованиеКолонки];
                        КонецЕсли;
                    КонецЕсли;
                КонецЦикла;

                Для каждого Рисунок Из Область.Рисунки Цикл

                    Если СтрНайти(Рисунок.Имя, Справочники.ШаблоныЭтикетокИЦенников.ИмяПараметраШтрихкод()) = 1 Тогда

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

                            Если СтруктураШаблона.Свойство("УровеньЧеткости") Тогда
                                УровеньЧеткости = СтруктураШаблона.УровеньЧеткости;
                            Иначе
                                УровеньЧеткости = 1;
                            КонецЕсли;

                            ПараметрыШтрихкода = Новый Структура;
                            ПараметрыШтрихкода.Вставить("Ширина",           Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселе) * УровеньЧеткости);
                            ПараметрыШтрихкода.Вставить("Высота",           Окр(Рисунок.Высота / КоличествоМиллиметровВПикселе) * УровеньЧеткости);
                            ПараметрыШтрихкода.Вставить("Штрихкод",         СокрЛП(ЗначениеШтрихкодаДляКомпоненты));
                            ПараметрыШтрихкода.Вставить("ТипВходныхДанных", 0); // Штрихкод - это строка
                            ПараметрыШтрихкода.Вставить("ТипКода",          СтруктураШаблона.ТипКода);
                            ПараметрыШтрихкода.Вставить("ОтображатьТекст",  СтруктураШаблона.ОтображатьТекст);
                            ПараметрыШтрихкода.Вставить("РазмерШрифта",     СтруктураШаблона.РазмерШрифта * УровеньЧеткости);

                            Если СтруктураШаблона.Свойство("GS1DatabarКоличествоСтрок") Тогда
                                ПараметрыШтрихкода.Вставить("GS1DatabarКоличествоСтрок", СтруктураШаблона.GS1DatabarКоличествоСтрок);
                            КонецЕсли;
                            Если СтруктураШаблона.Свойство("ТипШрифта") Тогда
                                ПараметрыШтрихкода.Вставить("ТипШрифта", СтруктураШаблона.МонохромныйШрифт);
                            КонецЕсли;
                            Если СтруктураШаблона.Свойство("УголПоворота") Тогда
                                ПараметрыШтрихкода.Вставить("УголПоворота", СтруктураШаблона.УголПоворота);
                            КонецЕсли;
                            Если СтруктураШаблона.Свойство("МонохромныйШрифт") Тогда
                                ПараметрыШтрихкода.Вставить("МонохромныйШрифт", СтруктураШаблона.МонохромныйШрифт);
                            КонецЕсли;
                            Если СтруктураШаблона.Свойство("Масштабировать") Тогда
                                ПараметрыШтрихкода.Вставить("Масштабировать", СтруктураШаблона.Масштабировать);
                            КонецЕсли;
                            Если СтруктураШаблона.Свойство("СохранятьПропорции") Тогда
                                ПараметрыШтрихкода.Вставить("СохранятьПропорции", СтруктураШаблона.СохранятьПропорции);
                            КонецЕсли;
                            Если СтруктураШаблона.Свойство("ВертикальноеВыравнивание") Тогда
                                ПараметрыШтрихкода.Вставить("ВертикальноеВыравнивание", СтруктураШаблона.ВертикальноеВыравнивание);
                            КонецЕсли;

                            Рисунок.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);

                        КонецЕсли;

                    КонецЕсли;

                    Если СтрНайти(Рисунок.Имя, "ЗнакВалюты") = 1 Тогда
                        ЗначениеКодаВалюты = СтрокаТовары[СтруктураРезультата.СоответствиеПолейСКДКолонкамТаблицы.Получить(Справочники.ШаблоныЭтикетокИЦенников.ИмяПараметраКодВалюты())];
                        Попытка
                            Рисунок.Картинка = Новый Картинка(Справочники.ШаблоныЭтикетокИЦенников.ПолучитьМакет("ЗнакВалюты" + ЗначениеКодаВалюты), Истина);
                        Исключение
                            Рисунок.Картинка = Новый Картинка;
                        КонецПопытки;
                    КонецЕсли;

                КонецЦикла;

                Для Инд = 1 По СтрокаТовары[ПечатнаяФорма.ИмяКолонкиКоличество] Цикл // Цикл по количеству экземпляров

                    НомерКолонки = НомерКолонки + 1;

                    Если НомерКолонки = 1 Тогда

                        НомерРяда = НомерРяда + 1;

                        ПечатнаяФорма.ТабличныйДокумент.Вывести(Область);

                    Иначе

                        ПечатнаяФорма.ТабличныйДокумент.Присоединить(Область);

                    КонецЕсли;

                    Если НомерКолонки = СтруктураШаблона.КоличествоПоГоризонтали И НомерРяда = СтруктураШаблона.КоличествоПоВертикали Тогда

                        НомерРяда    = 0;
                        НомерКолонки = 0;

                        ПечатнаяФорма.ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();

                    ИначеЕсли НомерКолонки = СтруктураШаблона.КоличествоПоГоризонтали Тогда

                        НомерКолонки = 0;

                    КонецЕсли;

                КонецЦикла; // Цикл по количеству экземпляров

            КонецЕсли;

        КонецЦикла; // Цикл по строкам таблицы товаров

    КонецЦикла;

    #КонецОбласти

    #Удаление
    Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
        Если ПечатнаяФорма.ТабличныйДокумент <> Неопределено Тогда
            НоваяСтрока = КоллекцияПечатныхФормБСП.Добавить();

            НоваяСтрока.ИмяМакета = ПечатнаяФорма.ИмяМакета;
            НоваяСтрока.ИмяВРЕГ   = ВРег(ПечатнаяФорма.ИмяМакета);
            НоваяСтрока.Экземпляров = 1;

            НоваяСтрока.ТабличныйДокумент = ПечатнаяФорма.ТабличныйДокумент;
            НоваяСтрока.СинонимМакета = ПечатнаяФорма.СинонимМакета;
        КонецЕсли;
    КонецЦикла;
    #КонецУдаления
    #Вставка
    // Заполнение принтера из регистра шаблонов
    МЗ = РегистрыСведений.СТ_ШаблоныЗаполненияПринтеров.СоздатьМенеджерЗаписи();
    МЗ.Пользователь = ПараметрыСеанса.ТекущийПользователь;
    
    Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
        Если ПечатнаяФорма.ТабличныйДокумент <> Неопределено Тогда
            НоваяСтрока = КоллекцияПечатныхФормБСП.Добавить();

            НоваяСтрока.ИмяМакета = ПечатнаяФорма.ИмяМакета;
            НоваяСтрока.ИмяВРЕГ   = ВРег(ПечатнаяФорма.ИмяМакета);
            НоваяСтрока.Экземпляров = 1;

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

КонецПроцедуры
Показать


Вот код функции получения имя компьютера клиента на сервере
Функция ПолучитьИмяКомпьютераКлиента() Экспорт
    
    НомерСеанса = НомерСеансаИнформационнойБазы();
    Сеансы = ПолучитьСеансыИнформационнойБазы();
    Для Каждого Сеанс Из Сеансы Цикл
        Если Сеанс.НомерСеанса = НомерСеанса Тогда
            Возврат Сеанс.ИмяКомпьютера;
        КонецЕсли;
    КонецЦикла;
    
    Возврат "";
    
КонецФункции
Показать

Я в итоге вообще написал на плюсах сервер печати этикеток с RPC сервисом, который ставится на клиентском компе и там все настройки настройки вывел нужные :D
kobayoshi; +1 Ответить
23. Alexponenta 10.03.22 20:53 Сейчас в теме
Вообще с макетами печатных форм все довольно забавно: мало в макете настройки сделать (они вообще не сохраняются путево), а вот настройки ПЕРЕД печатью через предварительный просмотр настройки сохраняют. Бадумс
24. romanpl777 33 19.08.22 12:11 Сейчас в теме
Кому актуально:
Судя по коду:

// Применение настроек табличного документа.
ЗаполнитьЗначенияСвойств(ПечатнаяФорма.ТабличныйДокумент, СтруктураШаблона.МакетЭтикетки, , "ОбластьПечати");

настройки печати подставляются из шаблонов этикеток и ценников, где задаются поля и принтеры:
Прикрепленные файлы:
26. userzak 13.01.23 10:08 Сейчас в теме
Когдато намучился с сохранением настроек Zebta TLP 2824. Проблема решилась установкой альтернативного драйвера от Seagull.
27. hafizovdb 19.01.23 15:14 Сейчас в теме
Была похожая проблема. Принтер Zebra ZD410, сначала стоял драйвер от производителя - каждая вторая печать из 1С приводила к зависанию файла в очереди печати или сбросу настроек. По рекомендациям скачал драйвер от Seagull, через его инсталятор удалил принтер Zebra и его драйвер, установил драйвер от Seagull. https://www.seagullscientific.com/support/downloads/drivers/zebra/download/
Далее зависания в очереди печати и сброс настроек прекратились, однако осталась проблема с настройкой размера этикетки. По-умолчанию на принтере размер был 57х50, создал на нем новую настройку, указал там 30х20 (мм). Если смотреть в Windows, то эта настройка сохранялась, однако при вызове диалога печати из 1С - у принтера настройки сбрасывались на дефолтные (57х50). Можно было их тут же перевыбрать на 30х20, но при следующем открытии диалога печати там опять были 57х50.
Решением оказалось установить галку "Отключить пользовательский размер бумаги" как показано на скриншоте, после этого диалог печати из 1С открывался с теми настройками, которые прописаны для принтера в Windows.
Прикрепленные файлы:
ARMAGEDONF; +1 Ответить
28. ARMAGEDONF 01.11.23 17:15 Сейчас в теме
(27) Спасибо hafizovdb, твое решение помогло. Точно такие же настройки этикетки у меня.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот