Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )




>  Передача між кліентом та сервером
rogabob
Отправлено: 06.12.21, 20:29


Общительный
**

Группа: Пользователи
Сообщений: 11
Регистрация: 01.02.18
Пользователь №: 59690


Цитата(Batchir @ 06.12.21, 14:10) *

Дякую всім за підказки..
// Оплата чека
&НаКлиенте
Процедура ОплатитьТовары(ИмяФормыОплаты, ОплатаПлатежнойКартой = Неопределено, Печать = Ложь)

По "Точкам Останова" і структурі виклику всіх процедур та функцій з клієнта на сервер, таки отримав ті дані, перед самим "так званим очищенням"
СоздатьНовыйНаборКлиент();

Зі своїми умовами
ТекушийПользователь = ТекПольз();
Если ТекушийПользователь="АДМЕН" Тогда...
//////
&НаСервере
Функция ТекПольз()
Возврат ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
КонецФункции;

Вдалося нарешті отримати всі свої Объект.Товары, Номенклатура.ВигрузкаКасовий

І ще раз дякую модератору що закрив тему... бо прийшлося дивитися уроки по "ЗАПРОСАМ" по 100 раз одне і те саме, і воно помаленьку почало доходитиsmile.gif..але ж все таки вдалося..можливо не грамотно і можливо не цілком правильно, але воно працює..поки щоsmile.gif
44000000.gif
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #174851 · Ответов: 7 · Просмотров: 1642
 

>  Передача між кліентом та сервером
rogabob
Отправлено: 06.12.21, 13:35


Общительный
**

Группа: Пользователи
Сообщений: 11
Регистрация: 01.02.18
Пользователь №: 59690


Цитата(sava1 @ 06.12.21, 10:42) *
Обект.Товари - також треба отримувати на сервері, передавати на клієнт і там обробляти



От це цікавіть найбільше... як краще це зробити... направте хоть на щось

Япробував з обьекта витягувати інформацію потрібну в масив структур і записувати це в
 НАСервере Перем

але при виклику зклієнта перем обнулялася
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #174847 · Ответов: 7 · Просмотров: 1642
 

>  Передача між кліентом та сервером
rogabob
Отправлено: 06.12.21, 9:08


Общительный
**

Группа: Пользователи
Сообщений: 11
Регистрация: 01.02.18
Пользователь №: 59690


Petre @ Сегодня, 8:12 * ,
якби то бало так просто!
ТекушийПользователь=  ПараметрыСеанса.ТекущийПользователь;

працює тільки
&НаСервере

А друге
Объект.Товары
доступний тільки на сервері...


а робота надоьєктом відьбувається на клієнті..
Обьект.товари береться з обьекта ОбьектЧекККМ перед закриттям
у процедури на сервері
Процедура ЗаполнитьЧекПоВсемДанным(ОбъектЧекККМ)
    
    ЗаполнитьЗначенияСвойств(ОбъектЧекККМ, Объект,,"Ссылка, Дата");
    
    ПечатьФК();

    ОбщегоНазначенияРТСервер.ЗагрузитьВТаблицуЗначений(Объект.Товары                         , ОбъектЧекККМ.Товары, Истина);
    ОбщегоНазначенияРТСервер.ЗагрузитьВТаблицуЗначений(Объект.УправляемыеСкидки              , ОбъектЧекККМ.УправляемыеСкидки, Истина);
    ОбщегоНазначенияРТСервер.ЗагрузитьВТаблицуЗначений(Объект.Подарки                        , ОбъектЧекККМ.Подарки, Истина);
    ОбщегоНазначенияРТСервер.ЗагрузитьВТаблицуЗначений(Объект.СкидкиНаценки                  , ОбъектЧекККМ.СкидкиНаценки, Истина);
    ОбщегоНазначенияРТСервер.ЗагрузитьВТаблицуЗначений(Объект.СерийныеНомера                 , ОбъектЧекККМ.СерийныеНомера, Истина);
    ОбщегоНазначенияРТСервер.ЗагрузитьВТаблицуЗначений(Объект.Серии                          , ОбъектЧекККМ.Серии, Истина);
    ОбщегоНазначенияРТСервер.ЗагрузитьВТаблицуЗначений(Объект.Оплата                         , ОбъектЧекККМ.Оплата, Истина);
    ОбщегоНазначенияРТСервер.ЗагрузитьВТаблицуЗначений(Объект.ПогашениеПодарочныхСертификатов, ОбъектЧекККМ.ПогашениеПодарочныхСертификатов, Истина);
    
КонецПроцедуры // ЗаполнитьЧекПоВсемДанным()
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #174842 · Ответов: 7 · Просмотров: 1642
 

>  Передача між кліентом та сервером
rogabob
Отправлено: 04.12.21, 21:18


Общительный
**

Группа: Пользователи
Сообщений: 11
Регистрация: 01.02.18
Пользователь №: 59690


64000000.gif
Конфігурація Розница 2.0, 1с 8.3 (кліент-сервер)
Є клієнт, на якому підключений фіскальний апарат .t400me.
При оплаті потрібна відправка даних на фіскальний апарат (умова= вигрузка в касовий = ИСТИНА, + кількість і штрихкод)
Суть в тому, що код нижче, пряцює при умові якщо кліент і є сервером.. при інакших обставинах там купа помилок.. тобто коли клієнт не є сервером
&НаСервере
Процедура ПечатьФК()
ТекушийПользователь=  ПараметрыСеанса.ТекущийПользователь;
Если ТекушийПользователь.Наименование="Адміністратор" Тогда
    
    ПроверкаКаса=Ложь;
    Для каждого стр из Объект.Товары Цикл
        Если стр.Номенклатура.ВигрузкаКасовий=Истина тогда
            ПроверкаКаса=Истина;
            Прервать;
        КонецЕсли;
    КонецЦикла;    
    Если ПроверкаКаса=Истина Тогда
        Драйвер = Новый COMОбъект("ecrmini.t400");
        Драйвер.t400me("open_port;2;115200;");  
        Драйвер.t400me("cashier_registration;1;0;");  
        Драйвер.t400me("open_receipt;0;");  
    КонецЕсли;

    Для каждого стр из  Объект.Товары Цикл    
        Если стр.Номенклатура.ВигрузкаКасовий=Истина тогда
            ШтрихКод1=ПолучитьШтрихКод(стр.Номенклатура);
            ШтрихКод=СокрЛП(ШтрихКод1);
            КстьТов=Формат(стр.Количество,"ЧДЦ=3; ЧРД=.; ЧГ=0");
            Драйвер.t400me("sale_plu;0;1;0;"+КстьТов+";"+ШтрихКод+";");  
        КонецЕсли;                
    КонецЦикла;    
    
    ОплатаКарткою=Ложь;
    Для каждого стрО из Объект.Оплата Цикл
        Если стрО.ВидОплаты.ТипОплаты=Перечисления.ТипыОплатЧекаККМ.ПлатежнаяКарта Тогда
            ОплатаКарткою=Истина;
        КонецЕсли;
    КонецЦикла;        
            
    Если ПроверкаКаса=Истина Тогда     
        Если  ОплатаКарткою=Истина Тогда    
            Драйвер.t400me("pay;2;0;");    
            Драйвер.t400me("close_port;");  
        Иначе
            Драйвер.t400me("pay;0;0;");  
            Драйвер.t400me("close_port;");  
        КонецЕсли;    
    КонецЕсли;
КонецЕсли;

КонецПроцедуры


На стороні сервера я пробував і тимчасові таблиці, і перемінну форми.. але все заходив в тупік..

Задача проста, потрібно щоб при натиску кнопки оплата і проходило надсилання даних на фіскальний.
Як грамотно це зробити.


  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #174838 · Ответов: 7 · Просмотров: 1642
 

>  Клиент Сервер и Драйвер = Новый COMОбъект("ecrmini.t400");
rogabob
Отправлено: 26.11.21, 14:41


Общительный
**

Группа: Пользователи
Сообщений: 11
Регистрация: 01.02.18
Пользователь №: 59690


Petre @ Сегодня, 11:48 * ,
!! так і зробив.. все компілятор не плюється)

але є друге, в консолі запитів вибірка показується, а от Запрос.Выполнить().Выбрать(); ..щось мовчить, повертає 0

        
      Результат = Запрос.Выполнить().Выбрать();
    сообщить("count:" +  Результат.Количество());
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #174765 · Ответов: 12 · Просмотров: 2552
 

>  Клиент Сервер и Драйвер = Новый COMОбъект("ecrmini.t400");
rogabob
Отправлено: 26.11.21, 11:39


Общительный
**

Группа: Пользователи
Сообщений: 11
Регистрация: 01.02.18
Пользователь №: 59690


Vofka @ Вчера, 7:54 *

Свариться на це.. підкажіть що потрібно виправити

Возврат ВыходнойМассив;

{Обработка.T400.Форма.Форма1.Форма(96,24)}: Процедура не може повертати значення
    Возврат ВыходнойМассив<<?>>; (Перевірка: Сервер)
{Обработка.T400.Форма.Форма1.Форма(96,24)}: Процедура не може повертати значення
    Возврат ВыходнойМассив<<?>>; (Перевірка: Тонкий клієнт)


&НаСервере
Процедура ЗавантаженняТоварівНаСервере()
    
    ВыходнойМассив = Новый Массив;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    
"ВЫБРАТЬ
|    Штрихкоды.Штрихкод,
|    Номенклатура.КороткаНазва,
|    Номенклатура.КодПодГрупи,
|    Номенклатура.Відділ,
|    Номенклатура.ВигрузкаКасовий,
|    Номенклатура.Ссылка
|ПОМЕСТИТЬ втНом
|ИЗ
|    РегистрСведений.Штрихкоды КАК Штрихкоды
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
|        ПО Штрихкоды.Владелец = Номенклатура.Ссылка
|ГДЕ
|    Номенклатура.ВигрузкаКасовий = ИСТИНА
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    втНом.КороткаНазва КАК КороткаНазва,
|    втНом.КодПодГрупи КАК КодПодГрупи,
|    втНом.Відділ КАК Відділ,
|    втНом.ВигрузкаКасовий КАК ВигрузкаКасовий,
|    втНом.Штрихкод КАК Штрихкод,
|    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
|ИЗ
|    втНом КАК втНом
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
|                &Дата,
|                Номенклатура В
|                    (ВЫБРАТЬ
|                        втНом.Ссылка
|                    ИЗ
|                        втНом КАК втНом)) КАК ЦеныНоменклатурыСрезПоследних
|        ПО втНом.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
|ГДЕ
|    ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = &ВидЦены
|    И втНом.ВигрузкаКасовий = ИСТИНА
|
|СГРУППИРОВАТЬ ПО
|    втНом.КороткаНазва,
|    втНом.КодПодГрупи,
|    втНом.Відділ,
|    втНом.ВигрузкаКасовий,
|    втНом.Штрихкод,
|    ЦеныНоменклатурыСрезПоследних.Цена";

     Запрос.УстановитьПараметр("Дата", КонецДня(ТекущаяДата()));
     Запрос.УстановитьПараметр("ВидЦены", Справочники.ВидыЦен.НайтиПоНаименованию("Роздрібна"));
    Результат = Запрос.Выполнить().Выбрать();
    Если Результат.Количество()>0 Тогда
        Кількість=0;
        Пока Результат.Следующий() Цикл                                                                  
            Если Результат.Ссылка.Весовой=Истина Тогда
                Штучний=1;
            Иначе
                Штучний=0;
            КонецЕсли;
            Артикул=СокрЛП(Результат.Артикул);
            Если Не ЗначениеЗаполнено(Артикул) Тогда
                Артикул=Формат(Прав(Результат.Код,8));
            КонецЕсли;    
                                                                                            //    сообщить(Артикул);
            КодПодГрупи =Результат.КодПодГрупи;
            Цена        =Формат(Результат.Цена,"ЧДЦ=2; ЧРД=.; ЧГ=0");
            Кількість    =Формат(Результат.Кількість,"ЧДЦ=3; ЧРД=.; ЧГ=0");
            Штрихкод    =СокрЛП(Результат.Штрихкод);
            Відділ        =Результат.Відділ;
            КороткаНазва=СокрЛП(Результат.КороткаНазва);
            Элт = Новый Структура("Артикул,КодПодГрупи,Відділ,Цена,Штрихкод,КороткаНазва,Кількість");
            Элт.Артикул     = Артикул;
            Элт.КодПодГрупи = Результат.КодПодГрупи;
            Элт.Штучний        = Штучний;
            Элт.Відділ        = Відділ;
            Элт.Цена        = Цена;
            Элт.Штрихкод    = Штрихкод;
            Элт.КороткаНазва= КороткаНазва;
            Элт.Кількість    = Кількість;
            ВыходнойМассив.Добавить(Элт);
            //сообщить("Завантажено: "+Результат.Артикул+" "+Результат.КороткаНазва+" "+Штрихкод+" "+Результат.КодПодГрупи+" "+Цена);
            //Драйвер.t400me("add_plu;"+СокрЛП(Артикул)+";"+КодПодГрупи+";"+Штучний+";0;0;1;"+Відділ+";"+Цена+";"+СокрЛП(Штрихкод)+";"+СокрЛП(Результат.КороткаНазва)+";"+Кількість+";");
        КонецЦикла;
        //Драйвер.t400me("close_port;");
        //сообщить("Вигрузку завершено.");
    Иначе
        //сообщить("Немає дани для завантаження накасовий апарат !");
    КОнецЕсли;
    Возврат ВыходнойМассив;
КонецПроцедуры

&НаКлиенте
Процедура ЗавантаженняТоварів(Команда)
    ЗавантаженняТоварівНаСервере();
КонецПроцедуры


Насервере
вместо процедури написав функция..
так можна.. ?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #174763 · Ответов: 12 · Просмотров: 2552
 

>  Клиент Сервер и Драйвер = Новый COMОбъект("ecrmini.t400");
rogabob
Отправлено: 24.11.21, 19:27


Общительный
**

Группа: Пользователи
Сообщений: 11
Регистрация: 01.02.18
Пользователь №: 59690


Vofka @ Вчера, 7:53 * ,

Нарешті вийшло зробити ту вибірку яка потрібна
Кому не важко переглянути може щось не правильно
ВЫБРАТЬ
    Штрихкоды.Штрихкод,
    Номенклатура.КороткаНазва,
    Номенклатура.КодПодГрупи,
    Номенклатура.Відділ,
    Номенклатура.ВигрузкаКасовий,
    Номенклатура.Ссылка
ПОМЕСТИТЬ втНом
ИЗ
    РегистрСведений.Штрихкоды КАК Штрихкоды
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
        ПО Штрихкоды.Владелец = Номенклатура.Ссылка
ГДЕ
    Номенклатура.ВигрузкаКасовий = ИСТИНА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втНом.КороткаНазва,
    втНом.КодПодГрупи,
    втНом.Відділ,
    втНом.ВигрузкаКасовий,
    втНом.Штрихкод,
    ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
    втНом КАК втНом
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                &Дата,
                Номенклатура В
                    (ВЫБРАТЬ
                        втНом.Ссылка
                    ИЗ
                        втНом КАК втНом)) КАК ЦеныНоменклатурыСрезПоследних
        ПО втНом.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
    ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = "Роздрібна"



І чи можна вставити замість &Дата, щоб постійно бралася ТекущаяДата? або ДатаЗапроса.. і як це правильно
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #174750 · Ответов: 12 · Просмотров: 2552
 

>  Клиент Сервер и Драйвер = Новый COMОбъект("ecrmini.t400");
rogabob
Отправлено: 22.11.21, 22:58


Общительный
**

Группа: Пользователи
Сообщений: 11
Регистрация: 01.02.18
Пользователь №: 59690


rogabob @ Сегодня, 21:18 * ,

Вроде норм... чи знову все каряво?
&НаСервере
Процедура ЗавантаженняТоварівНаСервере()
    
    ВыходнойМассив = Новый Массив;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    
        "ВЫБРАТЬ
     |    ВидыЦен.Наименование,
     |    Номенклатура.Ссылка,
     |    Номенклатура.Код,
     |    Номенклатура.Артикул,
     |    Номенклатура.ВигрузкаКасовий,
     |    Номенклатура.КороткаНазва,
     |    Номенклатура.КодПодГрупи,
     |    Номенклатура.Відділ,
     |    Штрихкоды.Владелец,
     |    ЦеныНоменклатурыСрезПоследних.ВидЦены,
     |    ЦеныНоменклатурыСрезПоследних.Цена
     |ПОМЕСТИТЬ ВТ_НОМ
     |ИЗ
     |    РегистрСведений.Штрихкоды КАК Штрихкоды
     |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
     |        ПО Штрихкоды.Владелец = Номенклатура.Ссылка,
     |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
     |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен
     |        ПО ЦеныНоменклатурыСрезПоследних.ВидЦены = ВидыЦен.Ссылка
     |        
     |ГДЕ
     |    Номенклатура.ВигрузкаКасовий = ИСТИНА
     |СГРУППИРОВАТЬ ПО
     |    Номенклатура.Ссылка,
     |    Номенклатура.Код,
     |    Номенклатура.Артикул,
     |    Номенклатура.ВигрузкаКасовий,
     |    Номенклатура.КороткаНазва,
     |    Номенклатура.КодПодГрупи,
     |    Номенклатура.Відділ,
     |    ВидыЦен.Наименование,
     |    Штрихкоды.Владелец,
     |    ЦеныНоменклатурыСрезПоследних.ВидЦены,
     |    ЦеныНоменклатурыСрезПоследних.Цена";
    
     Запрос.УстановитьПараметр("Дата", КонецДня(ТекущаяДата()));
     Запрос.УстановитьПараметр("ВидЦены", Справочники.ВидыЦен.НайтиПоНаименованию("Роздрібна"));

    
    Результат = Запрос.Выполнить().Выбрать();
    Если Результат.Количество()>0 Тогда
        
        Кількість=0;
        Пока Результат.Следующий() Цикл                                                                  
            
            Если Результат.Ссылка.Весовой=Истина Тогда
                Штучний=1;
            Иначе
                Штучний=0;
            КонецЕсли;
            Артикул=СокрЛП(Результат.Артикул);
            Если Не ЗначениеЗаполнено(Артикул) Тогда
                Артикул=Формат(Прав(Результат.Код,8));
            КонецЕсли;    
                                                                                                //    сообщить(Артикул);
            КодПодГрупи =Результат.КодПодГрупи;
            Цена        =Формат(Результат.Цена,"ЧДЦ=2; ЧРД=.; ЧГ=0");
            Кількість    =Формат(Результат.Кількість,"ЧДЦ=3; ЧРД=.; ЧГ=0");
            Штрихкод    =СокрЛП(Результат.Штрихкод);
            Відділ        =Результат.Відділ;
            КороткаНазва=СокрЛП(Результат.КороткаНазва);
            Элт = Новый Структура("Артикул,КодПодГрупи,Відділ,Цена,Штрихкод,КороткаНазва,Кількість");
            Элт.Артикул     = Артикул;
            Элт.КодПодГрупи = Результат.КодПодГрупи;
            Элт.Штучний        = Штучний;
            Элт.Відділ        = Відділ;
            Элт.Цена        = Цена;
            Элт.Штрихкод    = Штрихкод;
            Элт.КороткаНазва= КороткаНазва;
            Элт.Кількість    = Кількість;
            ВыходнойМассив.Добавить(Элт);
            
            

            //сообщить("Завантажено: "+Результат.Артикул+" "+Результат.КороткаНазва+" "+Штрихкод+" "+Результат.КодПодГрупи+" "+Цена);
            //Драйвер.t400me("add_plu;"+СокрЛП(Артикул)+";"+КодПодГрупи+";"+Штучний+";0;0;1;"+Відділ+";"+Цена+";"+СокрЛП(Штрихкод)+";"+СокрЛП(Результат.КороткаНазва)+";"+Кількість+";");
        КонецЦикла;
        
        //Драйвер.t400me("close_port;");
        //сообщить("Вигрузку завершено.");
    
    Иначе
        //сообщить("Немає дани для завантаження накасовий апарат !");
    КОнецЕсли;
    //Возврат ВыходнойМассив;
КонецПроцедуры
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #174710 · Ответов: 12 · Просмотров: 2552
 

>  Клиент Сервер и Драйвер = Новый COMОбъект("ecrmini.t400");
rogabob
Отправлено: 22.11.21, 21:18


Общительный
**

Группа: Пользователи
Сообщений: 11
Регистрация: 01.02.18
Пользователь №: 59690


Vofka @ Сегодня, 20:14 * ,
Правильно?
Сильно не "материть" - я не програміст

&НаСервере
Процедура ЗавантаженняТоварівНаСервере()
    
    ВыходнойМассив = Новый Массив;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка,
        |    Номенклатура.КодПодГрупи,
        |    Номенклатура.КороткаНазва,
        |    Номенклатура.Артикул,
        |    Штрихкоды.Штрихкод,
        |    Номенклатура.Код,
        |    Номенклатура.Відділ
        |ПОМЕСТИТЬ ВТ_Ном
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
        |        ПО Номенклатура.Ссылка = Штрихкоды.Владелец
        |ГДЕ
        |    Номенклатура.ВигрузкаКасовий = ИСТИНА
        |
        |СГРУППИРОВАТЬ ПО
        |    Номенклатура.Ссылка,
        |    Штрихкоды.Штрихкод,
        |    Номенклатура.КодПодГрупи,
        |    Номенклатура.КороткаНазва,
        |    Номенклатура.Артикул,
        |    Номенклатура.Код
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_Ном.Ссылка,
        |    ВТ_Ном.КодПодГрупи,
        |    ВТ_Ном.КороткаНазва,
        |    ВТ_Ном.Артикул,
        |    ВТ_Ном.Штрихкод,
        |    ВТ_Ном.Код,
        |    ВТ_Ном.Відділ
        |ИЗ
        |    ВТ_Ном КАК ВТ_Ном
        |
        |СГРУППИРОВАТЬ ПО
        |    ВТ_Ном.Ссылка,
        |    ВТ_Ном.Артикул,
        |    ВТ_Ном.КороткаНазва,
        |    ВТ_Ном.Штрихкод,
        |    ВТ_Ном.КодПодГрупи,
        |    ВТ_Ном.Код,
        |    ВТ_Ном.Відділ,
        |ОБЪЕДИНИТЬ
        |ВЫБРАТЬ
        |    ЦеныНоменклатурыСрезПоследних.Цена
        |ИЗ
        |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
        |            &Дата,
        |            Номенклатура = &Номенклатура
        |И             ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних";

    Запрос.УстановитьПараметр("Дата", КонецДня(ТекущаяДата()));
    Запрос.УстановитьПараметр("ВидЦены", Справочники.ВидыЦен.НайтиПоНаименованию("Роздрібна"));
    
    
    Результат = Запрос.Выполнить().Выбрать();
    Если Результат.Количество()>0 Тогда
        
        Кількість=0;
        Пока Результат.Следующий() Цикл                                                                  
            
            Если Результат.Ссылка.Весовой=Истина Тогда
                Штучний=1;
            Иначе
                Штучний=0;
            КонецЕсли;
            Артикул=СокрЛП(Результат.Артикул);
            Если Не ЗначениеЗаполнено(Артикул) Тогда
                Артикул=Формат(Прав(Результат.Код,8));
            КонецЕсли;    
                                                                                                //    сообщить(Артикул);
            КодПодГрупи =Результат.КодПодГрупи;
            Цена        =Формат(Результат.Цена,"ЧДЦ=2; ЧРД=.; ЧГ=0");
            Кількість    =Формат(Результат.Кількість,"ЧДЦ=3; ЧРД=.; ЧГ=0");
            Штрихкод    =СокрЛП(Результат.Штрихкод);
            Відділ        =Результат.Відділ;
            КороткаНазва=СокрЛП(Результат.КороткаНазва);
            Элт = Новый Структура("Артикул,КодПодГрупи,Відділ,Цена,Штрихкод,КороткаНазва,Кількість");
            Элт.Артикул     = Артикул;
            Элт.КодПодГрупи = Результат.КодПодГрупи;
            Элт.Штучний        = Штучний;
            Элт.Відділ        = Відділ;
            Элт.Цена        = Цена;
            Элт.Штрихкод    = Штрихкод;
            Элт.КороткаНазва= КороткаНазва;
            Элт.Кількість    = Кількість;
            ВыходнойМассив.Добавить(Элт);
            
            

            //сообщить("Завантажено: "+Результат.Артикул+" "+Результат.КороткаНазва+" "+Штрихкод+" "+Результат.КодПодГрупи+" "+Цена);
            //Драйвер.t400me("add_plu;"+СокрЛП(Артикул)+";"+КодПодГрупи+";"+Штучний+";0;0;1;"+Відділ+";"+Цена+";"+СокрЛП(Штрихкод)+";"+СокрЛП(Результат.КороткаНазва)+";"+Кількість+";");
        КонецЦикла;
        
        //Драйвер.t400me("close_port;");
        //сообщить("Вигрузку завершено.");
    
    Иначе
        //сообщить("Немає дани для завантаження накасовий апарат !");
    КОнецЕсли;
    //Возврат ВыходнойМассив;
КонецПроцедуры



Дана функція мала би вернути структуру, а вже потім на клієнті загрузити дані на фіскальний
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #174709 · Ответов: 12 · Просмотров: 2552
 

>  Клиент Сервер и Драйвер = Новый COMОбъект("ecrmini.t400");
rogabob
Отправлено: 22.11.21, 18:22


Общительный
**

Группа: Пользователи
Сообщений: 11
Регистрация: 01.02.18
Пользователь №: 59690


Vofka @ Сегодня, 17:12 * ,
Тобто виборку даних в масив поміщати?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #174706 · Ответов: 12 · Просмотров: 2552
 

>  Клиент Сервер и Драйвер = Новый COMОбъект("ecrmini.t400");
rogabob
Отправлено: 22.11.21, 15:23


Общительный
**

Группа: Пользователи
Сообщений: 11
Регистрация: 01.02.18
Пользователь №: 59690


Розница для Укр 2.0.6, 1с 8.3.17 Клієнт сервер

Раніше клієнт і сервер був як один, тому відповідно найнятий програміст особо не заморочувався на ком обєктах які створюються на клієнті а які на сервері (якщо це один компютер), але після переносу бази (окремо сервер окремо клієнт) почалися проблеми з фіскальним реєстратором

Код
&НаСервере
Процедура ЗавантаженняТоварівНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка,
        |    Номенклатура.КодПодГрупи,
        |    Номенклатура.КороткаНазва,
        |    Номенклатура.Артикул,
        |    Штрихкоды.Штрихкод,
        |    Номенклатура.Код,
        |    Номенклатура.Відділ
        |ПОМЕСТИТЬ ВТ_Ном
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
        |        ПО Номенклатура.Ссылка = Штрихкоды.Владелец
        |ГДЕ
        |    Номенклатура.ВигрузкаКасовий = ИСТИНА
        |
        |СГРУППИРОВАТЬ ПО
        |    Номенклатура.Ссылка,
        |    Штрихкоды.Штрихкод,
        |    Номенклатура.КодПодГрупи,
        |    Номенклатура.КороткаНазва,
        |    Номенклатура.Артикул,
        |    Номенклатура.Код
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_Ном.Ссылка,
        |    ВТ_Ном.КодПодГрупи,
        |    ВТ_Ном.КороткаНазва,
        |    ВТ_Ном.Артикул,
        |    ВТ_Ном.Штрихкод,
        |    ВТ_Ном.Код,
        |    ВТ_Ном.Відділ
        |ИЗ
        |    ВТ_Ном КАК ВТ_Ном
        |
        |СГРУППИРОВАТЬ ПО
        |    ВТ_Ном.Ссылка,
        |    ВТ_Ном.Артикул,
        |    ВТ_Ном.КороткаНазва,
        |    ВТ_Ном.Штрихкод,
        |    ВТ_Ном.КодПодГрупи,
        |    ВТ_Ном.Код,
        |    ВТ_Ном.Відділ";
    
    Запрос.УстановитьПараметр("Дата", КонецДня(ТекущаяДата()));
    //Запрос.УстановитьПараметр("ТипЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000002"));
    
    Результат = Запрос.Выполнить().Выбрать();
    Если Результат.Количество()>0 Тогда
        Драйвер = Новый COMОбъект("ecrmini.t400");
        Драйвер.t400me("open_port;2;115200;");
        Драйвер.t400me("del_plu;2;1;");
    //    Драйвер.t400me("close_port;");
        
    //    Драйвер.t400me("open_port;4;115200;");

        //Відділ=1;
        Кількість=0;
        Пока Результат.Следующий() Цикл
                        
            ЗапросЦена = Новый Запрос;
            ЗапросЦена.Текст =
            "ВЫБРАТЬ
            |    ЦеныНоменклатурыСрезПоследних.Цена
            |ИЗ
            |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
            |            &Дата,
            |            Номенклатура = &Номенклатура
            |                И ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних";
            ЗапросЦена.УстановитьПараметр("Номенклатура", Результат.Ссылка);
            ЗапросЦена.УстановитьПараметр("Дата", КонецДня(ТекущаяДата()));
            ЗапросЦена.УстановитьПараметр("ВидЦены", Справочники.ВидыЦен.НайтиПоНаименованию("Роздрібна"));
            РезультатЗапросаЦена = ЗапросЦена.Выполнить().Выбрать();
            Цена=0;
            Если РезультатЗапросаЦена.Количество()>0 Тогда
                Пока РезультатЗапросаЦена.Следующий() Цикл
                     Цена=РезультатЗапросаЦена.Цена;
                КонецЦикла;
            КонецЕсли;    
    
            Если Результат.Ссылка.Весовой=Истина Тогда
                Штучний=1;
            Иначе
                Штучний=0;
            КонецЕсли;
            Артикул=СокрЛП(Результат.Артикул);
            Если Не ЗначениеЗаполнено(Артикул) Тогда
                Артикул=Формат(Прав(Результат.Код,8));
            КонецЕсли;    
        //    сообщить(Артикул);
            КодПодГрупи=Результат.КодПодГрупи;
            Цена=Формат(Цена,"ЧДЦ=2; ЧРД=.; ЧГ=0");
            Кількість=Формат(Кількість,"ЧДЦ=3; ЧРД=.; ЧГ=0");
            Штрихкод=СокрЛП(Результат.Штрихкод);
            Відділ=Результат.Відділ;
            сообщить("Завантажено: "+Результат.Артикул+" "+Результат.КороткаНазва+" "+Штрихкод+" "+Результат.КодПодГрупи+" "+Цена);
            Драйвер.t400me("add_plu;"+СокрЛП(Артикул)+";"+КодПодГрупи+";"+Штучний+";0;0;1;"+Відділ+";"+Цена+";"+СокрЛП(Штрихкод)+";"+СокрЛП(Результат.КороткаНазва)+";"+Кількість+";");
        КонецЦикла;
        Драйвер.t400me("close_port;");
        сообщить("Вигрузку завершено.");

    Иначе
        сообщить("Немає дани для завантаження накасовий апарат !");
    КОнецЕсли;

КонецПроцедуры


&НаКлиенте
Процедура ЗавантаженняТоварів(Команда)
    ЗавантаженняТоварівНаСервере();
КонецПроцедуры


І з літератури ком обєкти сервер не передає.. або щось не правильно зрозумів

Якщо хтось підкаже як це змінити (можна і за оплату),
Потрібно щоб фіскальний отримував ті дані.
Бо все що на &клієнті виконується (тобто без процедур які виконуються на сервері)
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #174700 · Ответов: 12 · Просмотров: 2552
 


Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 26.04.24, 9:15
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!