7.7 Получить программный доступ к реквизитам документа Операция?

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

  1. TopicStarter Overlay
    umbra777
    Offline

    umbra777

    Регистрация:
    10 май 2010
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Сабж. В конфиге он пустой, реквизитов нет. Откуда она берутся и как получить к ним программный доступ?

    Вложения:

  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.628
    Симпатии:
    542
    Баллы:
    204
    Что именно нужно? Получить итоги? Тогда через объект БухгалтерскиеИтоги. Если изменить - через объект Операция
  3. TopicStarter Overlay
    umbra777
    Offline

    umbra777

    Регистрация:
    10 май 2010
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Спасибо, с этим вроде разобрался. Нужна была операция. Теперь новая затычка. Не могу переименовать существующую серию. Почему так? Потому что периодический реквизит или другая причина? Причем самое интересное Сообщить() показывает правильное, измененное название серии! Но реально это название не меняется! А после нескольких запусков обработки вообще стала ругаться что Поз в ТЗ выходит за границы
    Код:
    Процедура ИсправлениеСерий()  
       
        ОчиститьОкноСообщений();  
       
        ТЗ = СоздатьОбъект("ТаблицаЗначений"); 
        ТЗ.НоваяКолонка("Наименование");
        ТЗ.НоваяКолонка("Ссылка");
       
        Текст=СоздатьОбъект("Текст"); 
        Текст2=СоздатьОбъект("Текст");
       
        Текст.Открыть("f:\234.txt");
        Если Текст.КоличествоСтрок()=0 тогда
            Возврат;
        КонецЕсли;      
    Разд_ = ";";   
    
    СпрТовар =  СоздатьОбъект("Справочник.Номенклатура");
    СпрСерия =  СоздатьОбъект("Справочник.Серии"); 
    
    
    СпрСерия.ВыбратьЭлементы(0); 
    
    
        Пока СпрСерия.ПолучитьЭлемент() = 1 Цикл
                ТЗ.НоваяСтрока();             
                ТЗ.Наименование = СпрСерия.Наименование;                            
                ТЗ.Ссылка = СпрСерия.ТекущийЭлемент(); 
        КонецЦикла;
           
    Счетчик    = ТЗ.КоличествоСтрок();
       
    Сообщить(Счетчик);
                           
    ТЗ.Сортировать("Наименование");
    
    
    Для НомСтр = 1 По Текст.КоличествоСтрок() Цикл   
            Стр = Текст.ПолучитьСтроку(НомСтр);         
            Если Стр = "" Тогда Продолжить;
            КонецЕсли;
    
    Тов=Число(СокрЛП(Лев(Стр,Найти(Стр,Разд_)-1)));
    Стр=Сред(Стр,Найти(Стр,Разд_)+1);
    Произв=СокрЛП(Лев(Стр,Найти(Стр,Разд_)-1));
    Стр=Сред(Стр,Найти(Стр,Разд_)+1);
    Серия=СокрЛП(Лев(Стр,Найти(Стр,Разд_)-1));   
    Стр=Сред(Стр,Найти(Стр,Разд_)+1);
    Серия2=СокрЛП(Лев(Стр,Найти(Стр,Разд_)-1));
    Стр=Сред(Стр,Найти(Стр,Разд_)+1);   
    ЦенаПост=СокрЛП(Лев(Стр,Найти(Стр,Разд_)-1));
    Стр=Сред(Стр,Найти(Стр,Разд_)+1);
    ЦенаПроизв=СокрЛП(Лев(Стр,Найти(Стр,Разд_)-1));
    Стр=Сред(Стр,Найти(Стр,Разд_)+1);
    ЦенаРозн = Число(Стр); 
    Стр=Сред(Стр,Найти(Стр,Разд_)+1);
    ДатаУст = Дата(Стр);
    
    СпрТовар.НайтиПоКоду(Тов);     
    ТекЗначение = Серия;
         Поз=0;
         ТЗ.НайтиЗначение(ТекЗначение,Поз,"Наименование");                
         ТЗ.ПолучитьСтрокуПоНомеру(Поз);
         СпрСерия.НайтиЭлемент(ТЗ.Ссылка);
     
      Если СпрСерия.Наименование <> Серия2 Тогда
            СпрСерия.Наименование = Серия2;
            СпрСерия.Записать();
            Сообщить(СпрСерия.Наименование)
      КонецЕсли; 
    
    КонецЦикла;         
    
    
    КонецПроцедуры  
    
    
    
  4. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    539
    Симпатии:
    83
    Баллы:
    54
    Здравствуйте.
    Попробуйте добавить условие, когда ищите элемент справочника СпрСерия. Мне кажется, что присвоение идет какому-то другому элементу.
    Код:
    Если СпрСерия.НайтиЭлемент(ТЗ.Ссылка) = 1 Тогда
    Сообщить("Элемент найден");
    ТекСпр = СпрСерия.ТекущийЭлемент();
    Если ТекСпр.Наименование <> Серия2 Тогда
    ТекСпр.Наименование = Серия2;
    ТекСпр.Записать();
    Сообщить(ТекСпр.Наименование)
    КонецЕсли;
    Иначе
    Сообщить("Элемент не найден");
    КонецЕсли;
  5. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.556
    Симпатии:
    59
    Баллы:
    54
    у тебя по спрсерия цикл
    создай 2-й спрсерия2
    спрсерия2.найтиэлемент(тз.ссылка)