7.7 Переключение касс, тис

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем SerzhM, 9 май 2014.

  1. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) Перебрать через НАЙТИ
    2) Вы снова не внимательны... Да и я тоже
    замените
    ECR=Сред(ECR,37);
  2. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    СписокСтрок=СоздатьОбъект("СписокЗначений");

    Пока 1=1 Цикл
    СписокСтрок.ДобавитьЗначение(Лев(ECR,36));
    //ДлиннаяСтрока=Сред(ECR,37);
    //Если СтрДлина(ECR)<=36 Тогда
    ПозицияПеренос=Найти(ECR,"""+Симв(13)+Симв(10)");
    СтрокаДо =Лев(ECR,ПозицияПеренос-1);
    СтрокаПосле = Сред(ECR,ПозицияПеренос+1,СтрДлина(ECR));
    СписокСтрок.ДобавитьЗначение(ECR);
    Прервать;
    //КонецЕсли;
    КонецЦикла;

    По предыдущему коду Если СтрДлина(ECR)<=36 Тогда тт стрДлина равна 1518 следовательно и СписокСтрок.ДобавитьЗначение(ECR); не срабатывает.
    Последнее редактирование: 19 май 2014
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    СписокСтрок=СоздатьОбъект("СписокЗначений");

    Пока 1=1 Цикл
    ПозицияПеренос=Найти(ECR,"""+Симв(13)+Симв(10));
    Если ПозицияПеренос=0 Тогда //все последняя строка
    СписокСтрок.ДобавитьЗначение(ECR);
    прервать;
    Иначе
    СписокСтрок.ДобавитьЗначение(Лев(ECR,ПозицияПеренос-1));
    ECR = Сред(ECR,ПозицияПеренос+2);
    КонецЕсли;
    КонецЦикла;

    думаю что вот так
  4. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Не взлетело.
    ПозицияПеренос =0 сразу
    Т.е символы могут быть не те.
    А как их выявить что за символы?
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    для к=1 по СтрДлинна(ECR) Цикл
    код=Сред(ECR,к,1);
    Сообщить(""+Код+" код символа "+Симв(код));
    КонецЦикла;
  6. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    сообщило да 13 10 отвечают за перенос строки
    Код символа 13
    Код символа 10

    но почему в обработке не сработало
    --- Объединение сообщений, 19 май 2014 ---
    может глянем аммиадмин
    --- Объединение сообщений, 19 май 2014 ---
    Сейчас попробую
    ПозицияПеренос=Найти(ECR, КодСимв(10));

    Вложения:

    Последнее редактирование: 19 май 2014
  7. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Тоже не взлетело позиция перенос=0
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Попробуем совместить...

    СписокСтрок=СоздатьОбъект("СписокЗначений");

    стр="";
    для к=1 по СтрДлинна(ECR) Цикл
    код=Сред(ECR,к,1);
    Если Симв(код)=10 Тогда
    СписокСтрок.ДобавитьЗначение(стр);
    Стр="";
    к=к+1;
    Иначе
    стр=стр+Код;
    КонецЕсли
    КонецЦикла;
  9. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Сделал короче все но по другому. Попозже выложу.
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Вышеприведенный код должен работать.. Проверял
  11. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    для инфы:
    СтрДлина(РазделительСтрок) = 2
    КодСимв(Сред(РазделительСтрок,1,1)) = 13
    КодСимв(Сред(РазделительСтрок,2,1)) = 10

    СписокСтрок = СоздатьОбъект("СписокЗначений");
    СписокСтрок.ИзСтрокиСРазделителями(СтрЗаменить(МногоСтрочныйТекст,РазделительСтрок,""));

    Вам то наверное нужно:
    Код:
    Функция ПечататьСлип(ECR, Объект, Пароль)  //Объект это обработка фискальника, ЕСR данные которые нужно распечатать.
      
      
        Если ПустоеЗначение(Объект) = 1 Тогда
            ОписаниеРезультата = "устройство не подключено";
            Возврат 0;
        ИначеЕсли ПодключитьсяКФР(Объект, Пароль) = 0 Тогда
            Возврат 0;
        КонецЕсли;
     
    
      
    Для номСтр=1 По СтрКоличествоСтрок(ECR) Цикл
        Объект.StringForPrinting = СтрПолучитьстроку(ECR,номСтр);
        Объект.PrintString();
    КонецЦикла;
    
    //Объект.StringForPrinting = ECR;  Была попытка распечатать длинную строку.
    //Объект.PrintString();
    
    ОтрезатьЧек(Объект, Пароль);
    Возврат ОтключитьсяОтФР(Объект, Пароль);
    КонецФункции
  12. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Для номСтр=1 По СтрКоличествоСтрок(ECR) Цикл
    Объект.StringForPrinting = СтрПолучитьстроку(ECR,номСтр);
    Объект.PrintString();
    КонецЦикла;

    Есть символ который отвечает за конец строки и символ за окончание слипа.
    Типа что то получить строку до кода символа к примеру 10
    Печать строки
    Потом опять получаем строку отрезая первые 36 символов до кода сивола 10
    Если код символа вроде 17 тогда Отрезать чек.
    Рабочий код на работе времени выложить код пока нет.
    Да забыл сказать проблем решена.

Поделиться этой страницей