Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: УТ 11, Изменение использования характеристик в виде номенклатуры

Доброго времени суток!
В общем в УТ 11.4 хочу изменить использование характеристик с индивидуальных на общие для этого вида номенклатуры, сейчас у него всего вариантов около 15, но в каждой номенклатуре используется от 1 до 10)
Можете подсказать что с этого может стать плохого?
Например остатки так продадут или надо перебить или себестоимость с партиями?
Ответ: У каждого товара были свои,ты добавляешь общие,потом делаем замену своих на общие,потом удаляем свои,и что должно поменяться?
Вопрос: Виды номенклатуры

Может ли один товар быть сразу в нескольких видах номенклатуры?
Ответ: () + В любом, где есть номенклатура конечно))))
Вопрос: Почему у предопределенной номенклатуры не доступны поля Ставка НДС, Вид Номенклатуры, Тип номенклату

Здравствуйте.
Почему если в конфигураторе завести предопределенную номенклатуру следующие поля не доступны для редактирования: Ставка НДС, Вид Номенклатуры, Тип Номенклатуры, Единица измерения.
В чем смысл? Есть же логика.
1С Розница 2.1.
Спасибо.
Ответ:
Спасибо. Заполнил значения внешней обработкой.
Вопрос: Убрать из подбора характеристики с 0-ым остатом

Всем привет! Предприятие 8.3 Розница 2.2.
Подскажите имеется ли возможность в подборе товара, при нахождении его через поиск, после перехода к выбору его характеристик, убрать характеристики с нулевым остатком? У номенклатуры общие характеристики для вида номенклатуры, обычно их 30 штук, остатки иногда бывают по одной-двум характеристикам, неизвестно каким. И вот сидишь в подборе щелкаешь каждую на предмет остатка...

Ответ:
В УТ можно установить флаг "только в наличии". Здесь остатки получаются при активации строки номенклатуры. В типовой рознице такого функционала нет.
Решение - своя внешняя обработка подбора товара, либо внесение изменений в существующую (а, возможно, и расширением).
Вопрос: Внешняя обработка. УТ 11.3. Выбор доп.реквизитов номенклатуры и их заполнение

Всем привет!
Есть срочный вопрос. Мне необходимо заполнить доп.реквизиты каждого товара в номенклатуре в номенклатуре. Сейчас у меня есть код:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
элемент = Справочники.Номенклатура.СоздатьЭлемент();    
    //загружаем всякие параметры
        //начиная от сюда
        группа = ПолучитьГруппу(НайтиПоXpath("/Nomenklatura/Products/Product[" + индексТовара + "]/Group", ДокументДом));
    элемент.Родитель = Справочники.Номенклатура.НайтиПоНаименованию(группа);    
    элемент.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию( ПолучитьВидНоменклатурыПоГруппе(группа) );
    элемент.Наименование = НайтиПоXpath("/Nomenklatura/Products/Product[" + индексТовара + "]/Name", ДокументДом);
    элемент.Артикул = НайтиПоXpath("/Nomenklatura/Products/Product[" + индексТовара + "]/Articul", ДокументДом);
    элемент.Описание = НайтиПоXpath("/Nomenklatura/Products/Product[" + индексТовара + "]/Description", ДокументДом);
    элемент.ЕдиницаИзмерения = Справочники.УпаковкиЕдиницыИзмерения.НайтиПоНаименованию("шт");
    элемент.ВесИспользовать = истина;
    элемент.ВесЧислитель = Число( НайтиПоXpath("/Nomenklatura/Products/Product[" + индексТовара + "]/Weight", ДокументДом) );
    элемент.ВесЗнаменатель = 1; 
   
    производитель = НайтиПоXpath("/Nomenklatura/Products/Product[" + индексТовара + "]/Producer", ДокументДом);
    Если производитель <> "" Тогда 
        СоздатьПроизводителяЕслиНеобходимо(производитель);
        элемент.Производитель = Справочники.Производители.НайтиПоНаименованию(производитель);
    КонецЕсли;      
        //до сюда
 
        //выбираем реквизит
    реквизит= ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Характеристики");    
         
    а = элемент.ДополнительныеРеквизиты.Добавить();
    а.Свойство  = реквизит;
    а.Значение = "мое значение";
    а.ТекстоваяСтрока = "мой текст";
    элемент.Записать();
Проблема в том что у меня несколько видов номенклатуры и у всех есть доп.реквизит "Характеристики", и выбирается не пойми какой. А надо что бы он выбирался в соответствии с группой номенклатуры. Как его так выбрать?

1С Предприятие 8.3, УТ 11.3
Ответ: А, ну мой скрин не в тему. Лучше все так код, который выберет реквизит из группы, нежели менять названия

Добавлено через 28 минут
Названия одинаковые. Если поменять на разные - все работает, только вот лучше конечно что бы они были одинаковыми

Добавлено через 15 часов 2 минуты
Разобрался. Там в наименованиях действительно в скобках указана группа номенклатуры, только пробел стоит перед первой скобочкой. Но в 1с-е я так и не нашел где это отображается. Вот такой код:
1C
1
реквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Характеристики (" + видНоменклатуры + ")");
Вопрос: Свойство вида номенклатуры

Добра всем

Помогите разобраться
УТ 11.3
Надо к номенклатуре добавить свойство, общее для вида

    Процедура СоздатьСвойстваНаСервере(НазначениеСвойств, Свойство)

        ПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(Свойство, Истина, НазначениеСвойств);
        ПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.СоздатьЭлемент();
        ПВХ.ТипЗначения = Тип ("Строка");
        ПВХ.НаборСвойств = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_ХарактеристикиНоменклатуры_Общие;
        ПВХ.НаборСвойств = Справочники.НаборыДополнительныхРеквизитовИСведений.НазначениеСвойств;
        ПВХ.Наименование = Свойство;
        ПВХ.Заголовок = Свойство;
        ПВХ.Записать();
        
        
        Спр = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_ХарактеристикиНоменклатуры_Общие.ПолучитьОбъект();
        Спр = Справочники.НаборыДополнительныхРеквизитовИСведений.НазначениеСвойств;
        Спр = Спр.ПолучитьОбъект();
        Стр = Спр.ДополнительныеРеквизиты.Добавить();
        Стр.Свойство = ПВХ.Ссылка;
        Спр.Записать();


Так добавится свойство, общее для всех видов. а как добавить свойство для конкретного вида?

Пробовал 
Спр = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_ХарактеристикиНоменклатуры;
но или чего то упустил или не так

Спасибо
Ответ: Все. починил.
ПВХ.НаборСвойств = НазначениеСвойств.НаборСвойствХарактеристик;

Спр = НазначениеСвойств.НаборСвойствХарактеристик.ПолучитьОбъект ();
Вопрос: Изменение артикула элемента Справочника Номенклатура из файла

Здравствуйте.
Есть csv файл. Читаю содержимое таким кодом
Код:
Процедура ИмяФайлаНачалоВыбора(Элемент, СтандартнаяОбработка)
   
    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогВыбора.Заголовок = "Выберите файл";
    //

    Фильтр = "csv|*.csv";
    ДиалогВыбора.Фильтр = Фильтр;
    //

    Если ДиалогВыбора.Выбрать() Тогда
        ИмяФайла = ДиалогВыбора.ПолноеИмяФайла;
    КонецЕсли;
   
КонецПроцедуры

Процедура ПрочитатьНажатие(Элемент)
   
    //очищаем таблицу и удаляем колонки

    Таблица.Очистить();
    Таблица.Колонки.Очистить();
    ЭлементыФормы.Таблица.Колонки.Очистить();
   
    // чтение файла

    ЗагружаемыйФайл = Новый ТекстовыйДокумент;
    ЗагружаемыйФайл.Прочитать(ИмяФайла);
   
    //шапка по умолчанию 1 строка, из первой строки делаем колонки таблицы

    Шапка = ЗагружаемыйФайл.ПолучитьСтроку(1);
   
    //раскладываем строку в массив

    МассивКолонок = РазложитьСтрокуВМассивПодстрок(Шапка,Разделитель);
   
    //генерируем колонки   

    Для Каждого ИмяКолонки Из МассивКолонок Цикл
       
        ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ","");// убираем из имени колонок пробелы

        Таблица.Колонки.Добавить(ИмяБезПробелов,,ИмяКолонки);        
        НоваяКолонка = ЭлементыФормы.Таблица.Колонки.Добавить(ИмяБезПробелов, ИмяКолонки);
        НоваяКолонка.Данные = ИмяБезПробелов;
       
    КонецЦикла;
   
   
    Для НомерСтроки=2 по ЗагружаемыйФайл.КоличествоСтрок() Цикл
       
        Состояние("Обрабатывается "+Строка(Формат(?(ЗагружаемыйФайл.КоличествоСтрок()=0,0,((100*НомерСтроки)/ЗагружаемыйФайл.КоличествоСтрок())),"ЧЦ=3; ЧДЦ=0"))+" %");
        ОбработкаПрерыванияПользователя();//указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break

       
        // получить строку файла с указанным номером и преобразуем её в массив

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

        КонецЕсли;
       
        Для НомерКолонки = 1 по МассивКолонок.Количество() Цикл
            //заполняем строку значениями

            ТекущееЗначение = МассивКолонок[НомерКолонки-1];
            ИмяКолонки = Таблица.Колонки[НомерКолонки-1].Имя;            
            НоваяСтрока[ИмяКолонки] = ТекущееЗначение;           
        КонецЦикла;          
       
    КонецЦикла;  
   
   

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

Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",")
    
+ Code
    МассивСтрок = Новый Массив();
    Если Разделитель = " " Тогда
        Стр = СокрЛП(Стр);
        Пока Истина Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = СокрЛ(Сред(Стр,Поз));
        КонецЦикла;
    Иначе
        ДлинаРазделителя = СтрДлина(Разделитель);
        Пока Истина Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = Сред(Стр,Поз+ДлинаРазделителя);
        КонецЦикла;
    КонецЕсли;
   
КонецФункции

Процедура КнопкаВыполнитьНажатие(Кнопка)
      //Здесь должно быть что-то умное 
   
КонецПроцедуры


Разделитель = ";";
Как мне практически реализовать - Отобрать Номенклатуру по значению (это значение Артикул) в одной колонке полученной Таблицы и заменить этот самый Артикул на значения из другой колонки, ну и записать?
Кусок файла
Дата;Новый код САЕ;Старый код САЕ;Марка
01.08.2017 12:32:50;F8397;F8397P;Yokohama
01.08.2017 12:33:18;F9710;F9710P;Yokohama
01.08.2017 12:33:48;R1657;F9643;Yokohama
01.08.2017 17:37:48;WHS145101old;WHS145101;Replay
01.08.2017 17:42:34;WHS063963old;WHS063963;MAK
01.08.2017 17:43:01;WHS129145old;WHS129145;Скад
01.08.2017 17:43:25;WHS155030old;WHS155030;LegeArtis Concept
01.08.2017 17:43:53;WHS056888old;WHS056888;OZ
01.08.2017 17:44:22;WHS142367old;WHS142367;LS
01.08.2017 17:44:56;WHS113069old;WHS113069;MAK
02.08.2017 12:39:47;TS00836;TS00836.;Toyo
03.08.2017 17:17:07;WHS158377old;WHS158377;Alutec
03.08.2017 17:18:10;WHS064258old;WHS064258;FR replica
07.08.2017 17:32:31;E4723;E4102;Yokohama
17.08.2017 13:55:04;WHS131412old;WHS131412;N2O
Ответ:
Разобрался.
Вопрос: Не выгружаются Характеристики товара на сайт

Приветствую Уважаемые форумчане!!!
Вопрос собственно в следующем: Есть внешняя обработка (Обычные формы) выполняющая обмен остатками с MySQL базой сайта. Номенклатура и цены выгружается на сайт нормально,но в базе 1с (8.3.5.1119) УТ (11.1.7.54) для каждого товара существуют характеристики (Цвет) вот они и не выгружаются...
Как сделать правильный запрос, чтобы выгружались Наименования Характеристик привязанных к товару и их остаток.
Запрос выполняется следующим образом:
Код:
Функция ХарактеристикиТовара (Товар)      //Отбор по характеристикам товара
      Запрос5 = Новый Запрос;
      Запрос5.Текст =
      "ВЫБРАТЬ
    |   ДополнительныеРеквизиты.Свойство,
    |   ДополнительныеРеквизиты.Значение
    |    ИЗ
    |    Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
    |    ГДЕ
    |    ХарактеристикиНоменклатуры.Ссылка В (&Характеристика)";
  
    Запрос5.УстановитьПараметр("Характеристика", Товар);
    РезультатЗапроса5 = Запрос5.Выполнить();
    ВыборкаДетальныеЗаписи5 = РезультатЗапроса5.Выбрать();
    Пока ВыборкаДетальныеЗаписи5.Следующий() Цикл
        НименованиеХарактеристики = ВыборкаДетальныеЗаписи5.ХарактеристикиНоменклатуры;
        Сообщить (НименованиеХарактеристики);
    КонецЦикла;

КонецФункции
Данная функция объявляется в следующей процедуре:
Код:
Процедура ВыгрузитьОпции (Товар)       //Выгружаем Характеристики товара в Опции на сайте
              
                  Код = Формат(Число(ЗаменитьПрефиксы(Товар.Код)), "ЧГ=0");
                 ИмяОпции = "Цвет";
                ТипОпции = "radio";
                Значение = ХарактеристикиТовара(Товар); // Значение Характеристики (Название)
                Обязательная = "1";
                Количество = "0";      // Количество (по наличию)
                УчётНаСкладе = "0";
                ДопЦена = "0";
                ДопБаллы = "0";
                ДопВес = "0";

    Стр = oc1c.UploadOption(Код,ИмяОпции,ТипОпции,Значение,Обязательная,Количество,УчётНаСкладе,ДопЦена,ДопБаллы, ДопВес);
    Сообщить(Стр);

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

В итоге при обмене с базой Сам товар выгружается, а вместо характеристики добавляется строка с пустым значением Характеристики:
Помогите пожалуйста разобраться, что делаю не так?
Ответ:
У меня обработка работает нормально, единственное нужно правильно сформировать запрос на получение Наименования характеристик из Номенклатуры (Товара) - этих характеристик (в данном случае Цвет) у каждого товара много и они разные. Выходные данные должны быть в виде строки.
Вот этот самый запрос я и не могу сформулировать правильно
--- Объединение сообщений, 13 фев 2017 ---
Разработчики обработки, дали мне пример процедуры и функции (на примере выгрузки атрибутов),но нужно правильно сформировать запрос.
В 1с я не силен - а сами разработчики запросили 2000 за час работы, поэтому я пытаюсь сам это все сделать! Но как видно у меня не получается
Вопрос: Групповое изменение характеристик

УТ 11
Здравствуйте!
Есть Товар с Характристикой Например Банан.
Появилось задание заменить на вкус "Превосходный банан"(переименовать этот вариант не подходит по тому что у номенклатуры по факту сменился Вид номенклатуры)
Можно ли групповой обработкой Например указать Что у этой номенклатуры с таким вкусом надо заменить на такой вкус везде где он встречается(например Банан на Превосходный банан)
Ответ:
Короче геморой....(
Вопрос: отчет об изменениях номенклатуры на дату

Добрый день! Подскажите пожалуйста как реализовать вывод данных об изменениях номенклатуры на дату. Т.е. каждый день формировать отчет, который содержит:
1. новый товар (товар, которого ранее не было);
2. товар, цена которого изменилась;
3. товар, который вновь появился (т.е. товар, которого на остатке не было до приходной накладной);
4. товар, остаток которого 0.
Заранее спасибо.
Ответ:
Российская 10.3 то есть...
Ну собственно, регистр сведений ЦеныНоменклатуры - для цен, ТекущиеОстатки - для получения данных об остатках товаров

По первому пункту - что имелось в виду? номенклатуру которую в этот день ввели в справочник или номенклатуру, которая первый раз пришла на склад? первый вариант - добавляйте в номенклатуру реквизит с датой регистрации и в подписке на событие перед записью заполняйте его, в отчет отбирайте номенклатуру с нужной датой. второй вариант - если записи о приходе номенклатуры есть в отчетный период, то выбрать первую запись с этой номенклатурой по регистру текущих остатков с датой регистрации меньше начала отчетного периода. Если такой нет - значит первый приход.