Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Заменить номенклатуру в ресурсной спецификации ERP

Заменить номенклатуру в ресурсной спецификации ERP
Я
   gagachoo
 
16.05.19 - 15:52
Добрый день.

1С:ERP Управление предприятием 2 (2.4.5.143)

Помогите пожалуйста заменить гайку 1, на гайку 2 в ресурсной спецификации.
Она должна замениться во всех действующих, закрытых спецификациях, но прежняя остаться в других документах для бухгалтерии как я понимаю.
В ERP должен быть этот механизм, подскажите как это сделать?
 
 
   Кодер
 
1 - 16.05.19 - 16:04
Копируем спецификацию. Заменяем в новой спецификации гайку. Выбираем новую спецификацию в новых документах. Старая спецификация остаётся в старых документах, если вы не хотите менять гайки в проданной продукции.
   shuhard
 
2 - 16.05.19 - 16:09
(0)[В ERP должен быть этот механизм]
нет и не должен
и за такие замены руки отрывают
   kzot
 
3 - 16.05.19 - 16:17
(2) может он про "Разрешение на замену материалов" спрашивает ?
   gagachoo
 
4 - 16.05.19 - 17:14
(1) А если спецификаций 300 шт, где используется этот материал?
   Кодер
 
5 - 16.05.19 - 17:16
(4) Руками/обработкой. Какие вы видите иные варианты?
   gagachoo
 
6 - 16.05.19 - 17:17
(2) Про ERP я так сказал, потому что 1с программист это сделал это за 5 минут, без обработок
А что тут такого страшного? Обычный рабочий момент по сути. Вот я и спрашиваю, как сделать так, что бы руки не оторвали. Проданная продукция осталась при своём
   gagachoo
 
7 - 16.05.19 - 17:17
(3) А это что? Можно поподробнее?
   gagachoo
 
8 - 16.05.19 - 17:22
(5) Руками, обработкой, какой то магический способ ))) Просто такая ситуация возникает наверное у многих, можно было это в типовое обслуживание добавить.
   Кодер
 
9 - 16.05.19 - 17:27
Эдак ты и "тестирование и исправление ключей аналитики" захочешь. В УПП была, тут нет - бери флагмана и быстренько дописывай.
   xraf
 
10 - 16.05.19 - 19:25
(6) «без обработок» не могу представить. Ведь любое групповое изменение объектов означает использование обработки (типовой или внешней).
Сейчас в бсп можно легко отбирать и изменять объекты по критериям
   gagachoo
 
11 - 30.05.19 - 12:50
&НаКлиенте
Процедура ПодобратьДляЗамены(Команда)
    // Вставить содержимое обработчика

    ПодобратьДляЗаменыНаСервере();
КонецПроцедуры

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

&НаКлиенте
Процедура ЗаменитьНовой(Команда)
    ЗаменитьНовойНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗаменитьНовойНаСервере()
    // Вставить содержимое обработчика.

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

    ПодобратьДляЗаменыНаСервере();
    
    
КонецПроцедуры


&НаСервере
Процедура СформироватьКолонкиТаблицы(ТаблицаРезультат, Группа = Неопределено)
     
    // Удалим колонки таблицы перед обновление

    Таблица = РеквизитФормыВЗначение("ДанныеТаблицы");
    МассивРеквизитов = Новый Массив;
 
    Для Каждого Колонка Из Таблица.Колонки Цикл
        МассивРеквизитов.Добавить("ДанныеТаблицы." + Колонка.Имя);       
    КонецЦикла;
    // Вторым параметром передаем то что нужно удалить

    // Первым параметром то что нужно создать

    ИзменитьРеквизиты(,МассивРеквизитов);
     
    // Теперь удаляем таблицу с формы

    ЭлементТаблица = Элементы.Найти("ДанныеТаблицы");
    Если ЭлементТаблица <> Неопределено Тогда
        Элементы.Удалить(ЭлементТаблица);       
    КонецЕсли;    
    // И добавляем ее заново

    ЭлементТаблица=Элементы.Добавить("ДанныеТаблицы", Тип("ТаблицаФормы"),?(Группа = Неопределено, Элементы.Группа4, Элементы[Группа]));
    ЭлементТаблица.ПутьКДанным = "ДанныеТаблицы";
    ЭлементТаблица.Отображение = ОтображениеТаблицы.Список;  
 
    // Создаем реквизиты таблицы значений

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

        //    МассивТипов.Добавить(Тип("ДокументСсылка.ЭтапПроизводства2_2"));

        //Иначе

            МассивТипов.Добавить(Колонка.ТипЗначения);
        КонецЕсли;
        
        НоваяКолонка = Новый РеквизитФормы(Колонка.Имя,
                                Новый ОписаниеТипов(МассивТипов), "ДанныеТаблицы");
        МассивРеквизитов.Добавить(НоваяКолонка);
        
    КонецЦикла;
    // Первый параметр, это то что нужно создать

    ИзменитьРеквизиты(МассивРеквизитов); 
    ЗначениеВРеквизитФормы(ТаблицаРезультат, "ДанныеТаблицы");
     
    // Создаем на форме элементы управления

    // Т.е. выводим таблицу значений и ее колонки

    ЭлементТЗ = Элементы.ДанныеТаблицы;
    Для Каждого Колонка ИЗ ТаблицаРезультат.Колонки Цикл
        НовыйЭлементФормы = Элементы.Добавить("ДанныеТаблицы" + Колонка.Имя,
                                                Тип("ПолеФормы"), ЭлементТЗ);
        НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
        НовыйЭлементФормы.ПутьКДанным = "ДанныеТаблицы." + Колонка.Имя;
    КонецЦикла;
КонецПроцедуры
   Krendel
 
12 - 30.05.19 - 12:52
(6) Делай новую спеку

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.