Имя: Пароль:
1C
 
Заполнить по остаткам в УФ
0 first_may
 
26.04.17
21:14
Добрый день.

Конфигурация Розница, редакция 2.2

Пишу первую обработку, которая заполняет табличную часть документа перемещение товаров.

В модуле так, как написано во всех источниках.

В форме следующим образом

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

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

&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    Документ = ВладелецФормы.Объект;
    
    Оповещение = Новый ОписаниеОповещения("ОтветНаВопросЗавершение", ЭтотОбъект);
    ТекстВопроса = "Табличная часть будет заполнена остатками на складе " + Документ.СкладОтправитель + ". Продолжить?";
    ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
КонецПроцедуры




Вопрос связан с тем, что в цикле
        Для Каждого Запись Из Выборка Цикл
            Сообщить(Запись.КоличествоОстаток);
            
            Строка = ВладелецФормы.Объект.Товары.Добавить();
            Строка.Номенклатура = Запись.Номенклатура;
            Строка.Количество = Запись.КоличествоОстаток;
        КонецЦикла;

не запоняется количество. Прошу помощи, как надо правильно сделать?
1 zippygrill
 
26.04.17
21:34
А номенклатура заполняется? Если да то смотри в сторону реквизита КоличествоУпаковок
2 zippygrill
 
26.04.17
21:35
Строка.Количество = Запись.КоличествоОстаток;
Строка.КоличествоУпаковок = Запись.КоличествоОстаток;
3 roman844
 
26.04.17
21:36
а почему ???
Строка = ВладелецФормы.Объект.Товары.Добавить();
            Строка.Номенклатура = Запись.Номенклатура;

может Объект.Товары.Добавить()?
4 roman844
 
26.04.17
21:38
в Выборке после запроса Выборка.КоличествоОстаток что возвращает?
5 zippygrill
 
26.04.17
21:40
"Пишу первую обработку, которая заполняет табличную часть документа перемещение товаров.
" - стаж 10 лет ...
6 first_may
 
26.04.17
21:43
(5) устал уже всем отвечать:
- век живи, век учись
- каждый из нас чему то учиться, даже уважаемый zippygrill
- все знать невозможно
- и тд


Получилось, когда написал
Строка = ВладелецФормы.Объект.Товары.Добавить();
Строка.Номенклатура = Запись.Номенклатура;
Строка.Количество = Запись.КоличествоОстаток;
Строка.КоличествоУпаковок = Запись.КоличествоОстаток;

(2) спасибо
7 roman844
 
26.04.17
21:43
(5) я подумал из модуля формы ))). На (4) ответь.
8 first_may
 
26.04.17
21:45
(7) возвращает количество
9 first_may
 
26.04.17
21:46
А как можно еще вызвать событие, которое есть в форме документа при изменении номенклатуры, то есть
ТоварыНоменклатураПриИзменении(Элемент)
10 roman844
 
26.04.17
21:49
а кто нить подключал 1С Розница 8 Салон оптики + АТОЛ 22Ф???
11 roman844
 
26.04.17
21:49
спецы по рознице подскажите, а??? как подключали ККМ-онлайн???
12 roman844
 
26.04.17
21:50
интересует FprnM1C.dll какую брать?
13 first_may
 
26.04.17
21:51
(10) ставил драйверы атола 8, а дальше как обычный фискальник.
14 first_may
 
26.04.17
21:51
(11) + прописывал порт в службе Eou
15 first_may
 
26.04.17
21:52
Так модно вызвать ТоварыНоменклатураПриИзменении(Элемент)?
16 roman844
 
26.04.17
21:54
(13) и (14) сделал, открыл смену. А вот чек при пробитии пишет ЧЕК АНУЛИРОВАН.
17 roman844
 
26.04.17
21:55
смена открывается и при пробитии чека - ЧЕК АНУЛИРОВАН.
18 first_may
 
26.04.17
21:59
(16) открыл смену - чек вышел?
19 roman844
 
26.04.17
22:02
(18) да, вышел. Открытие смены написано. При закрытии - соответственно чек о закрытии выходит. При пробитии чека между открытием и закрытием смен - ЧЕК АНУЛИРОВАН.
20 roman844
 
26.04.17
22:04
у меня вопрос какой драйвер АТОЛА использовали??? и Делали ли подмену библиотеки, котрая поставляется с конфигурацией? или прямо все из коробки завелось???  У меня 1С Розница.Салон оптики это от РАРУС.
21 roman844
 
26.04.17
22:04
версия 2.2.5.23
22 first_may
 
26.04.17
22:04
(19) версия драйвера атола?
23 roman844
 
26.04.17
22:08
(22) 8.14.0 и 8.14.2 оба пробывал ставить, результат одинаковый.
24 first_may
 
26.04.17
22:10
(23) 14 не ставил, использую DTO_8_12_00_00_Full.exe.
25 roman844
 
26.04.17
22:12
(24) а какая модель ККМ установлена?
26 roman844
 
26.04.17
22:13
(24) интересует именно ККМ-онлайн по 54ФЗ
27 first_may
 
26.04.17
22:14
(26) ставил
атол 22 птк ф
атол 11ф
атол 30ф
атол 55ф
28 first_may
 
26.04.17
22:16
(26) алкоголь?
29 roman844
 
26.04.17
22:18
(28) Салон оптики.
30 roman844
 
26.04.17
22:18
Конфгурация от РАРУСа
31 first_may
 
26.04.17
22:19
(30) утм есть? может с офд нет связи?
32 roman844
 
26.04.17
22:19
скажите пожалуйста, вы замену делали dll из конфигурации? или все стандартно из коробки работает?
33 roman844
 
26.04.17
22:21
Так как смены открывает и закрывает, то в ОФД мы увидели окрытие/закрытие смен, следовательно связь с ОФД есть.
34 roman844
 
26.04.17
22:21
(31) что такое УТМ?
35 first_may
 
26.04.17
22:23
(34) УТМ - транспортный модель для алкоголя

да, если смена открывается/закрывается и все видно в офд, то надо искать все, что связано в продажей.
36 first_may
 
26.04.17
22:25
у меня все получилось, вот код



&НаКлиенте
Перем КэшированныеЗначения;

&НаКлиенте
Функция СтруктураЗаполненияЦеныКлиент()
    СтруктураЗаполненияЦены = Новый Структура;
    СтруктураЗаполненияЦены.Вставить("Дата", ВладелецФормы.Объект.Дата);
    СтруктураЗаполненияЦены.Вставить("ОбъектЦенообразования", ВладелецФормы.Объект.МагазинОтправитель);
    СтруктураЗаполненияЦены.Вставить("ПриводитьКМинимальнойЦене", Ложь);
    
    Возврат СтруктураЗаполненияЦены;
КонецФункции

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

&НаКлиенте
Процедура ОтветНаВопросЗавершение(Результат, ДополнительныеПараметры) Экспорт
    Если Результат = КодВозвратаДиалога.Да Тогда
        Документ = ВладелецФормы.Объект;
        Выборка = ПолучитьДанныеЗапроса(Документ);
        
        ВладелецФормы.Объект.Товары.Очистить();
        Для Каждого Запись Из Выборка Цикл
            Строка = ВладелецФормы.Объект.Товары.Добавить();
            Строка.Номенклатура = Запись.Номенклатура;
            Строка.Количество = Запись.КоличествоОстаток;
            Строка.КоличествоУпаковок = Запись.КоличествоОстаток;
            
            
            СтруктураДействий = Новый Структура;
            СтруктураДействий.Вставить("ЗаполнитьТипНоменклатуры");
            СтруктураДействий.Вставить("ПроверитьСерийныеНомераПоВладельцу",
            ОбработкаТабличнойЧастиТоварыКлиент.ПолучитьСтруктуруПроверкиСерийныхНомеровПоВладельцу(Строка, ВладелецФормы.Объект.СерийныеНомера));
            СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", Строка.Характеристика);
            СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу", Строка.Упаковка);
            СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
            СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", СтруктураЗаполненияЦеныКлиент());
            СтруктураДействий.Вставить("ПересчитатьСумму");
            
            СтруктураСправки = Новый Структура;
            СтруктураСправки.Вставить("Дата", ВладелецФормы.Объект.Дата);
            СтруктураДействий.Вставить("ПроверитьНеобходимостьВводаСправкиНаАлкоголь", СтруктураСправки);
            
            ОбработкаТабличнойЧастиТоварыКлиент.ПриИзмененииРеквизитовВТЧКлиент(ВладелецФормы.Объект.Товары, Строка, СтруктураДействий, КэшированныеЗначения);
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    Документ = ВладелецФормы.Объект;
    
    Оповещение = Новый ОписаниеОповещения("ОтветНаВопросЗавершение", ЭтотОбъект);
    ТекстВопроса = "Табличная часть будет заполнена остатками на складе " + Документ.СкладОтправитель + ". Продолжить?";
    ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
37 roman844
 
26.04.17
22:30
можете скинуть вашу версию драйвера на [email protected]
38 roman844
 
26.04.17
22:31
напишите релиз вашей Розницы???
39 first_may
 
26.04.17
22:33
(38)
ссылка https://yadi.sk/d/Sgt8FS-K3HPPZh
конфа Розница, редакция 2.2 (2.2.5.27)
40 roman844
 
26.04.17
22:35
спасибо огромное, завтра буду пробывать
41 roman844
 
26.04.17
22:36
а устанавливали все из коробки или dll меняли?
42 first_may
 
26.04.17
22:37
(41) про платформу 1с?
43 roman844
 
26.04.17
22:43
(42) я про драйвер.
44 roman844
 
26.04.17
22:44
как подключение настраивал в 1С
45 roman844
 
26.04.17
22:44
???
46 roman844
 
26.04.17
22:46
установили драйвер от Атол и все??? замену dll делали на ту которая идет в составе конфигурации???
47 roman844
 
26.04.17
22:49
видимо придется кэш почистить, по крайней мере так рекомендуют
48 first_may
 
26.04.17
22:53
1 никакую длл не менял
2 кэш можно почистить (в каталоге платформы есть ExtCompT)
3 драйвер от Атол и все


еще вот
"Удалите все атоловские драйвера из системы.
Удалите подключенные атоловские ФР в 1С.
Удалите файл внешней компоненты в папке C:\Users\User\AppData\Roaming\1C\1cv8\ExtCompT\FprnM1C82.dll
Вероятнее всего до установки драйвера 8.x вы ставили 6-й или Универсальный атол"
49 roman844
 
26.04.17
22:55
(48) эо этого стоял ФР АТОЛ22Ф (не он лайн), а сегодня стали ставить Атол 22Ф он лайн, все снес, но в 1С не отключал старый ФР.
50 roman844
 
26.04.17
22:57
(48) вы писали
Удалите файл внешней компоненты в папке C:\Users\User\AppData\Roaming\1C\1cv8\ExtCompT\FprnM1C82.dll , хорошо, а вместо него какой драйвер использовать? из драйвера атола?
51 first_may
 
26.04.17
22:57
(49) тогда можно это

Удалите файл внешней компоненты в папке C:\Users\User\AppData\Roaming\1C\1cv8\ExtCompT\FprnM1C82.dll
Вероятнее всего до установки драйвера 8.x вы ставили 6-й или Универсальный атол
52 first_may
 
26.04.17
22:57
53 roman844
 
26.04.17
22:58
(52) эту FprnM1C82.dll, надо копировать также в кэш и там ее регистрировать?
54 first_may
 
26.04.17
23:00
(53) нет
1 удалеям старую
2 ставим дрова по умолчанию
3 прописываем кассу
55 roman844
 
26.04.17
23:00
(54) спс, буду пробывать
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.