Имя: Пароль:
1C
 
УТ 11 и маркировка. Маленький, но важный вопрос
0 johnnik
 
10.02.20
14:28
Обратился клиент с просьбой помочь с внедрением маркировки (не шевелился, а сейчас решил, что пора). Подпись сделал, в ЧЗ как-то зарегался. Я тыркнулся смотреть - у него 5к+ обувных позиций. Если вид номенклатуры менять групповой обработкой, то для 1С это пофигу, она все равно не считает номенклатуру обувной, хотя визуально вид номенклатуры стоит нормальный. Если менять вручную, то все ок, но 5000 позиций менять руками - это жесть. Т.е. в форме карточки номенклатуры присутствует какой-то код, который интерактивно отрабатывается и некая хитрая галка проставляется, а программным способом - не проставляется

Ради интереса развернул 1С демо-базу УТ11, там такая же петрушка. Вид номенклатуры Обувь, а товар никак не видится как обувно (нельзя подобрать в документы типа "эмиссия марок" и т.п.). Если вручную поменять вид номенклатуры, то товар становится доступен. Т.е. 1С даже в собственной демо базе сильно не заморачивались. Ну хрен с ними, косяки 1С дело привычное, но людям то что делать? Умел бы я кодить на 8-ке, я бы наверное нашел, но не умею.

Подозреваю, что аналогичная проблема есть и в Рознице, и в УНФ, и в Комплексной. Неужели 1С-ники заставят людей вручную перещёлкивать всю свою обувь (ну или табак). А у кого-то небось по 50к и более справочники маркируемой номенклатуры
1 ksenod
 
10.02.20
14:32
(0) что мешает открыть конфигуратор и посмотреть что навешано на нужную кнопку-галку?
2 ptiz
 
10.02.20
14:55
(0) "но людям то что делать" - кто не сможет маркировать - должен уйти с рынка. Позиция правительства.
3 Garykom
 
гуру
10.02.20
15:01
(0) >Умел бы я кодить на 8-ке, я бы наверное нашел, но не умею.

Фирме которая не хочет уйти с рынка надо просто нанять программиста который "умеет кодить в 8-ке".
Тут только тонкость есть что есть много типа "программистов" которые почти такую же зарплату почему то требуют хотя ниуя не умеют...
4 tigrandis
 
10.02.20
15:06
(0) скорее всего кроме "вид номенклатуры" есть еще реквизиты которые надо менять, "Тип номенклатуры" и прочее. нужна простенькая обработка для изменения =) поищи на просторах интернета.
5 Кодер
 
10.02.20
15:11
Есть у меня vbs для таких случаев. Ждёт 5 секунд после запуска, потом в цикле нажимает нужные кнопки с нужными паузами.
6 Garykom
 
гуру
10.02.20
15:18
(5) мдя
7 Garykom
 
гуру
10.02.20
15:36
(5) Автоматизация путем эмуляции действий обезьянок это самое тупое что только можно придумать.
8 Кодер
 
10.02.20
15:49
(6) Оно кроссплатформенное и доступное для изменения юзверем, так что имеет право на существование.
9 Garykom
 
гуру
10.02.20
16:25
(8) "кроссплатформенный" vbs ? Даже на андроид (или йос) в МК пашет да?
10 Кодер
 
10.02.20
16:27
(9) Под любое виндовое приложение. Семёрка, восьмёрка, doc, xls. Ни линукс, ни смартфон, ни телевизор, ни умные часы не поддерживаются.
11 Garykom
 
гуру
10.02.20
16:40
(10) Код на 1С (банальная внешняя обработка) кроссплатформенный. Сравни со своими ограничениями.
12 Garykom
 
гуру
10.02.20
16:41
(11)+ В чем проблема прочитать (4) и реализовать?
13 johnnik
 
10.02.20
17:33
(4) Про "Тип номенклатуры" знаю, конечно же. Его замена через групповую обработку реквизитов ситуации не меняет. Менял и отдельно "тип" (не трогая "вид"), и оба сразу - функционалу пофигу, товар не считается программой за обувь
14 Garykom
 
гуру
10.02.20
17:40
(13) Реквизиты у номенклатуры посмотри в конфигураторе блин
15 Garykom
 
гуру
10.02.20
17:44
(14)+ Ну или "групповое изменение реквизитов"
https://www.youtube.com/watch?v=PdSZ482L4ds

И попробуй там найти нечто со словом "маркировка". Ну или может быть чуть сложнее и надо глянуть что происходит при выборе правильного вида номенклатуры, куда и как ставится признак маркированности.
16 DmitriyDI
 
10.02.20
17:56
(5) есть исходники)?
17 DmitriyDI
 
10.02.20
18:05
(0) Примерный код:

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

&НаСервере
Процедура ВидНоменклатурыПриИзмененииНаСервере(ЗаполнениеПоИсточникуКопирования = Ложь, СпрОбъект)
    

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


А как это в обработку добавить думаю быстро разберешься.
18 Кодер
 
10.02.20
18:13
(16) Не нашёл свой код, как-то так:

Set wshShell=WScript.CreateObject("WScript.Shell")
// Обычно цикл с параметром-числом повторений
do while wshShell.AppActivate("Opera")
        // Тут подобрать паузу, она в миллисекундах
    wshShell.sendkeys "{e}"

    wshShell.sendkeys "{enter}"
loop
WScript.Echo "BINGO!"
19 Сияющий в темноте
 
10.02.20
18:48
(5)есть Auto-It.
и вместо пауз можно ожидать готовности приложения.
некоторые так общение с меркурием писали,там отдельно по этому поводу ругань была,что кнопки должен пользователь нажимать.
20 PaulBC
 
11.02.20
06:23
(0) Кроме вида номенклатуры надо "Особенность учета" = "Обувная продукция"
21 2S
 
11.02.20
06:52
(0) мдя, а в консоли сравнить две позиции - правильную и нет, не пробовали
22 unbred
 
11.02.20
07:39
(5) автокликер. я ещё в 98м в ультиме таким пользовался, бро.
23 unbred
 
11.02.20
07:43
(21) умел бы я кодить на 8-ке.. а так.. хоть смотри консоль, хоть не смотри..всё равно кодить не умею..
24 JeHer
 
11.02.20
08:09
Там еще проще, есть три реквизита
АлкогольнаяПродукция
ТабачнаяПродукция
ОбувнаяПродукция