7.7 Замена одного объекта, на который есть ссылки, на другой идентичный

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем lemono, 15 май 2008.

  1. TopicStarter Overlay
    lemono
    Offline

    lemono

    Регистрация:
    15 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Добрый день!
    Столкнулся с задачей: Есть два элемента справочника, допустим "материалы"
    Для бухгалтеров оба элемента идентичны, т.е. они выбирали хаотично и тот и другой при заполнении документов и проводили их.
    Теперь необходимо один из них удалить, причем на удаляемый элемент естественно ссылаются проведенные документы. Вручную заменять этот удаляемый элемент справочника на необходимый долго.
    Как безболезненно подменить элемент справочника на другой во всей группе документов? Всей группе ссылок указать новый объект взамен старого автоматически, с помощью обработки...
    Может быть это уже реализовано кем-либо? Есть ли информация и идеи?

    Заранее спасибо всем откликнувшимся.
  2. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    глянь эту обработку...
  3. TopicStarter Overlay
    lemono
    Offline

    lemono

    Регистрация:
    15 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Спасибо, обработка не плохая, но не подошла...не сильно ускоряет и облегчает решение моей задачи, хотя если ее доработать, то может все будет и лучше
    Огорчило: 1) отсутствие возможности фильтра для отбора объектов, в которых будет производится изменения значения реквизита
    2) Отсутствие возможности снять галки с найденных объектов всех сразу, но это мелочь
    3) и главное, что документы не перепроводятся после выполнения обработки.
    Т.е. ручной работы осталось столько же, увы

    Попробую доработать под свои нужды
  4. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    почему не подошла?? выбираешь документ "реализация" на первой закладки выбираешь номенклатуру которую надо ставить, на второй условие что номенклатура = номенклатуре которую будешь удалять... а перепровести документы можно встроенной обработкой...
  5. TopicStarter Overlay
    lemono
    Offline

    lemono

    Регистрация:
    15 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Может я что-то не понимаю, но на второй вкладке обработка мне не дает ввести условие, при нажатии на клавижу "добавить" выдается сообщение, что условие для выбранного реквизита уже введено....
  6. TopicStarter Overlay
    lemono
    Offline

    lemono

    Регистрация:
    15 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Вот процедура выбора условия
    Код:
    Процедура ВыбратьУсловие(НомТекСтр) 	
    Перем СтрИмяДиалога;
    гТипОбъекта = ФормТипОбъекта.ПолучитьЗначение(ФормТипОбъекта.ТекущаяСтрока());
    
    Если НомТекСтр>ТабУсловия.КоличествоСтрок() Тогда
    НомТекСтр=0;
    КонецЕсли;
    
    Если (НомТекСтр>0)И(ТабУсловия.ТекущаяКолонка()="ФлВкл") Тогда
    Если  СокрЛП(ТабУсловия.ФлВкл)="" Тогда
    ТабУсловия.ФлВкл="+";
    Иначе
    ТабУсловия.ФлВкл="";
    КонецЕсли;
    Возврат;
    КонецЕсли;
    
    И есть там такая часть кода:
    Код:
    [b]гСписокПарам=СоздатьОбъект("СписокЗначений");
    //вызов диалога выбора
    СтрИмяДиалога="!Вспомогательная.ert";
    РасположениеФайла(гСтрПуть,гИмяФайла);
    [/b]
    гСписокПарам.ДобавитьЗначение(гТипОбъекта,"Режим");
    Если гТипОбъекта = "Справочник" Тогда
    гСписокПарам.ДобавитьЗначение(Метаданные.Справочник(ФормВидОбъекта.ТекущаяСтрока()),"Объект");
    ИначеЕсли гТипОбъекта = "Документ" Тогда
    гСписокПарам.ДобавитьЗначение(Метаданные.Документ(ФормВидОбъекта.ТекущаяСтрока()),"Объект");
    КонецЕсли;
    
    Если НомТекСтр>0 Тогда
    Если СокрЛП(ТабУсловия.ПолучитьЗначение(НомТекСтр,"ФлВкл"))="+" Тогда
    Вкл=1;
    Иначе
    Вкл=0;
    КонецЕсли;
    гСписокПарам.ДобавитьЗначение(Вкл,"ВклУсловие");
    гСписокПарам.ДобавитьЗначение(ТабУсловия.ПолучитьЗначение(НомТекСтр,"КолИдентификатор"),"Атрибут");
    гСписокПарам.ДобавитьЗначение(ТабУсловия.ПолучитьЗначение(НомТекСтр,"КолПредставление"),"Представление");
    гСписокПарам.ДобавитьЗначение(ТабУсловия.ПолучитьЗначение(НомТекСтр,"КолУсловие"),"Условие");
    гСписокПарам.ДобавитьЗначение(ТабУсловия.ПолучитьЗначение(НомТекСтр,"КолЗначение"),"Значение");
    КонецЕсли;
    ПеремКонт=гСписокПарам;
    ОткрытьФормуМодально("Отчет",ПеремКонт,гСтрПуть+СтрИмяДиалога);
    Если ПустоеЗначение(ПеремКонт)=1 Тогда
    Возврат;
    КонецЕсли;
    Если ПеремКонт.РазмерСписка()=0 Тогда
    Возврат;
    КонецЕсли;
    //проверка значений перед вставкой новой
    ВыбАтриб=ПеремКонт.Получить("Атрибут");
    Если НомТекСтр=0 Тогда
    ТабУсловия.ВыбратьСтроки();
    Пока ТабУсловия.ПолучитьСтроку()=1  Цикл
    Если (ВыбАтриб=ТабУсловия.КолИдентификатор) И (ВыбАтриб <> "СубконтоДт") И 
    (ВыбАтриб <> "СубконтоКт")Тогда
    
    вот оно предупреждение

    Код:
    [b]Предупреждение("Внимание,условие для "+Строка(ВыбАтриб)+" уже определено!");[/b]
    
    Возврат;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    
    Если НомТекСтр<=0 Тогда
    ТабУсловия.НоваяСтрока();
    КонецЕсли;
    
    СтрФл="";
    Если ПеремКонт.Получить("ВклУсловие")=1 Тогда
    СтрФл="+";
    КонецЕсли;
    ТабУсловия.ФлВкл			= СтрФл;
    ТабУсловия.КолИдентификатор = ВыбАтриб;
    ТабУсловия.КолУсловие		= ПеремКонт.Получить("Условие");
    ТабУсловия.КолПредставление = ПеремКонт.Получить("Представление");
    ТабУсловия.КолЗначение 		= ПеремКонт.Получить("Значение");
    ТабУсловия.КолВидСубконто 	= ПеремКонт.Получить("ВидСубконто");
    Если НомТекСтр <= 0 Тогда
    ТабУсловия.ТекущаяСтрока(ТабУсловия.НомерСтроки);
    КонецЕсли;
    КонецПроцедуры
    
    Боюсь, что нужен файл "Вспомогательная.ert"
  7. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    сорри... забыл :) лови!
    и используй тэг
    Код:
     в следующий раз...
  8. TopicStarter Overlay
    lemono
    Offline

    lemono

    Регистрация:
    15 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1

Поделиться этой страницей