Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
21 Окт 2017, 18:56
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Печать имени пользователя на этикетке  (Прочитано 1702 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sandrowild

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-12
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день, уважаемые!

Помогите новичку с решением.
Думаю, задача не такая уж и нетривиальная :)

Мы на производстве используем 1С 7.7 для контроля производимой продукции.
После окончания производственной операции на термопринтере печатается этикетка с различными данными (дата, время, № детали, наименование, ШК и тыды).

Производственники просят, чтобы на этикетке печаталась фамилия оператора (пользователя), который производил эти детали.
Список пользователей в базу я завел, а вот как вывести фамилию активного (который залогинен) на этикетку не знаю.

Сможете подсказать? Буду премного благодарен!:D:D


Оффлайн Игорь Иванов

  • **
  • Сообщений: 95
  • РЕПУТАЦИЯ: 10
  • КПД: 11%
  • Регистрация: 2014-08-06
  • Сайт: 
  • Профессия: Консультант 1С
Надо найти макет этикетки.
Принтер этикеток как подключен? Через оснастку подключаемого оборудования или как обычный офисный принтер? Если через оснастку (забыл как правильно по-"семёрочному" она называется), там указана внешняя обработка, обслуживающая печать. Макет может быть в ней.

Оффлайн sandrowild

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-12
  • Сайт: 
  • Профессия: Ученик 1С
Надо найти макет этикетки.
Принтер этикеток как подключен? Через оснастку подключаемого оборудования или как обычный офисный принтер? Если через оснастку (забыл как правильно по-"семёрочному" она называется), там указана внешняя обработка, обслуживающая печать. Макет может быть в ней.

Принтер подключен как обычный офисный. Это обычная Зебра.
Макет я нашел тут:
Конфигуратор - открыть конфигурацию - обработки - печать этикеток
Там как я понял и лежит макет. Скрин приложил.

Это оно?

Оффлайн Игорь Иванов

  • **
  • Сообщений: 95
  • РЕПУТАЦИЯ: 10
  • КПД: 11%
  • Регистрация: 2014-08-06
  • Сайт: 
  • Профессия: Консультант 1С
Это оно?

Судя по приведённому перечню, нет.
В поисковике Конфигуратора задайте поиск по всем объектам конфигурации слова, допустим, "этикет". (Окончание указывать не надо, так как падеж, в котором встречается это слово в тексте кода, нам не известен.) Проанализируйте найденные вхождения на предмет принадлежности к искомой этикетке.

Оффлайн sandrowild

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-12
  • Сайт: 
  • Профессия: Ученик 1С
Проанализируйте найденные вхождения на предмет принадлежности к искомой этикетке.

Проанализируйте найденные вхождения на предмет принадлежности к искомой этикетке.

Это оно?

 Проанализируйте найденные вхождения на предмет принадлежности к искомой этикетке.

Вот что нашел по запросу "этикет" в коде:

   // ПЕЧАТЬ СТАНДАРТНОЙ ЭТИКЕТКИ
   текСтр="";
   С2=СоздатьОбъект("Справочник.Комплектующие");
   С2.ИспользоватьВладельца(элем);
   Если С2.ВыбратьЭлементы()=1 Тогда
      Пока С2.ПолучитьЭлемент()=1 Цикл
         Если С2.ПометкаУдаления()=1 Тогда
            Продолжить;
         КонецЕсли;
         текСтр=текСтр+СокрЛП(С2.Наименование)+"; ";
      КонецЦикла;
   КонецЕсли;
   текВр=Строка(ТекущееВремя());
   стрДата=Строка(ТекущаяДата())+" "+Лев(текВр,СтрДлина(текВр)-3);
   
   ТекПравШК = СокрЛП(Строка(элем.ШтрихКод));
   ТекПравШК = Прав(ТекПравШК, СтрДлина(ТекПравШК) - Найти(ТекПравШК, "-"));
   ТекПравШК = Сред(ТекПравШК, Найти(ТекПравШК, "-") - 1);
   
   Т=СоздатьОбъект("Таблица");
   Т.ИсходнаяТаблица("Этикетка60мм");
   Т.ВывестиСекцию("Этикетка");
   Т.ТолькоПросмотр(1);
   
   ИмяП = СокрЛП(ПолучитьПараметр("ИмяПринтераДляОбычнойЭтикетки"));
   Если ПустоеЗначение(ИмяП) = 0 Тогда
      Т.ПараметрыСтраницы(1,ВЧисло(ПолучитьПараметр("ПроцентМасштабаПечатиОбычнойЭтикетки")),,,,,,,,0,,ИмяП);
   КонецЕсли;
   
   Если фл2=1 Тогда
      Попытка
         ЗаписатьЛог(12, элем.ШтрихКод, Строка(элем), );
         Т.КоличествоЭкземпляров(1);
         Если ПораПечататьЭтикеткуКонтейнера = 1 Тогда // 2 раза, если пора на контейнер
            Т.КоличествоЭкземпляров(2 - флНетДвойнаяПечать);
         КонецЕсли;
         Т.Напечатать(0);
      Исключение
      КонецПопытки;
   Иначе
      ЗаписатьЛог(13, элем.ШтрихКод, Строка(элем), );
      Т.Показать();
   КонецЕсли;
   
   Если ЭтоГлавнаяСтанция() = 1 Тогда
      Если ТЗСоставКонт.КоличествоСтрок() = 1 Тогда
         Умн = 0;
         сп = СоздатьОбъект("Справочник.Комплектующие");
         сп.ИспользоватьВладельца(элем);
         Если сп.ВыбратьЭлементы() = 1 Тогда
            Пока сп.ПолучитьЭлемент() = 1 Цикл
               Умн = Умн + 1;
            КонецЦикла;
         КонецЕсли;
         Умн = Макс(1, Умн);
         Константа.ЛимитШКБуфер = элем.КолвоВУпаковке * Умн;
      КонецЕсли;
   КонецЕсли;
   
   УстановитьПараметр("ВремяПаузыПечатиОбычнойЭтикетки", _GetPerformanceCounter());
   // ПЕЧАТЬ СТАНДАРТНОЙ ЭТИКЕТКИ
   
   
   // КАРТИНКА
   Форма.Карт.Видимость(0);
   
   Если флКарт = 1 Тогда
      Если ПустоеЗначение(элем.Карт) = 0 Тогда
         Попытка
            Форма.Ош1.Видимость(0);
            Форма.Ош2.Видимость(0);
            Форма.Ош3.Видимость(0);
            
            Карт.Загрузить(СокрЛП(элем.Карт));
            Форма.Карт.Видимость(1);
         Исключение
         КонецПопытки;
      ИначеЕсли ПустоеЗначение(элем.ШтрихКод) = 0 Тогда
         Попытка
            Форма.Ош1.Видимость(0);
            Форма.Ош2.Видимость(0);
            Форма.Ош3.Видимость(0);
            
            ТекКарт = КаталогИБ() + "PICTURES\" + СокрЛП(элем.ШтрихКод) + ".jpg";
            Карт.Загрузить(СокрЛП(ТекКарт));
            Форма.Карт.Видимость(1);
         Исключение
         КонецПопытки;
      КонецЕсли;
   КонецЕсли;
   // КАРТИНКА
   
Как я понял - это касательно обычной этикетки (на деталь), которая мне и нужна. Есть еще этикетка на контейнер, но она меня не интересует.

Подскажите, я на верном пути?

Оффлайн Игорь Иванов

  • **
  • Сообщений: 95
  • РЕПУТАЦИЯ: 10
  • КПД: 11%
  • Регистрация: 2014-08-06
  • Сайт: 
  • Профессия: Консультант 1С
текСтр=текСтр+СокрЛП(С2.Наименование)+"; ";

После этой строки введите
текСтр=текСтр+СокрЛП(ИмяПользователя())+"; ";

Оффлайн sandrowild

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-12
  • Сайт: 
  • Профессия: Ученик 1С

Оффлайн Игорь Иванов

  • **
  • Сообщений: 95
  • РЕПУТАЦИЯ: 10
  • КПД: 11%
  • Регистрация: 2014-08-06
  • Сайт: 
  • Профессия: Консультант 1С
Сохраните изменения и напечатайте этикетку. Появилось имя пользователя в конце строки?

Оффлайн sandrowild

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-12
  • Сайт: 
  • Профессия: Ученик 1С
Да, сработало :D
Возможно ли перенести фамилию в отдельную строку?

Оффлайн Игорь Иванов

  • **
  • Сообщений: 95
  • РЕПУТАЦИЯ: 10
  • КПД: 11%
  • Регистрация: 2014-08-06
  • Сайт: 
  • Профессия: Консультант 1С
текСтр=текСтр+СокрЛП(ИмяПользователя())+"; ";

Вставьте символ возврата картеки перед именем пользователя вот так:
текСтр=текСтр+Симв(13)+СокрЛП(ИмяПользователя())+"; ";


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
88 Сообщений
alex0402
50 Сообщений
AIFrame
43 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
37 Сообщений
Oldman06
31 Сообщений
Golickoff Golickoff
30 Сообщений
vitasw
29 Сообщений
MuI_I_Ika MuI_I_Ika
18 Сообщений
DmitriyF DmitriyF
14 Сообщений
BuhRust
13 Сообщений

* Кто онлайн

  • Точка Гостей: 243
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal