8.х Изменение реквизита табличной части документа

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Neon_tmn, 26 янв 2010.

  1. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте, есть документ "Прием на работу в организацию", в нем в основных начислениях есть начисление "Районный коэффициент", вот у него стоит значение 10, но нужно поставить значение 70, что означает 70%. Поставить нужно абсолютно у всех сотрудников. И вот не получается у меня добраться и изменить до него. пробовал так:
    Код:
    	ДокПриема = Документы.ПриемНаРаботуВОрганизацию.Выбрать();
    Пока ДокПриема.Следующий() Цикл
    РК = ДокПриема.ОсновныеНачисления.Выгрузить();
    Сообщить(РК.Количество()); //Выводит количество начислений.
    КонецЦикла;
    
    
    А дальше не могу продвинуться, пробовал получал значение Основных начислений и их виды, но не так все как-то.

    После изменения я так понимаю, нужно выполнить
    Код:
    ДокПриема.Записать(РежимЗаписиДокумента.Проведение);
    
    Как слепой котенок, и спросить не у кого даже.
    Помогите пожалуйста.
  2. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Нужно работать с объектом, а не с выборкой, т.е.:
    Код:
    ВыборкаДокПриема = Документы.ПриемНаРаботуВОрганизацию.Выбрать();
    Пока ВыборкаДокПриема.Следующий() Цикл
    ДокОбъект = ВыборкаДокПриема.ПолучитьОбъект();
    
    Для каждого Стр Из ДокОбъект.ОсновныеНачисления Цикл
    Стр.РайонныйКоэффициент = 70;
    //далее здесь меняем все связанные с районным коэф. реквизиты строки.
    КонецЦикла;
    ДокОбъект.Записать();
    КонецЦикла;
    
    
  3. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    717
    Баллы:
    204
    А не проще воспользоваться стандартной ГРУППОВАЯ ОБРАБОТКА СПРАВОЧНИКОВ И ДОКУМЕНТОВ? :)
  4. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Я думаю групповая обработка не получится, она четко заменяет то или иное значение реквизита. А поскольку у меня табличная часть, и в табличной части различные виды основных начислений, то мне нужно проверять что за начисление я обрабатываю, если это Районный коэффициент, тогда изменить значение, если нет, то пропустить и смотреть дальше...
  5. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Вот Так работает:
    Код:
    ВыборкаДокПриема = Документы.ПриемНаРаботуВОрганизацию.Выбрать();
    Пока ВыборкаДокПриема.Следующий() Цикл
    ДокОбъект = ВыборкаДокПриема.ПолучитьОбъект();
    Для каждого Стр Из ДокОбъект.ОсновныеНачисления Цикл
    Если Стр.ВидРасчета.Наименование = "Районный коэффициент" Тогда
    Стр.Показатель1=70;
    КонецЕсли;
    КонецЦикла;
    ДокОбъект.Записать();
    КонецЦикла;
    
    Только надо все документы Документы.ПриемНаРаботуВОрганизацию перепровести, иначе в начисления когда к каждому сотруднику захожу в начисления, то все верно отображается 70, а в документе на прием старое значение, нажал на кнопку Ок, открл снова и уже 70, как должно быть.

    Спасибо Stack_G за помощь.
  6. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Зачем все документы перепроводить.
    ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
    Записать (Write)
    Синтаксис:
    Записать(<Режим записи>, <Режим проведения>)
    Параметры:
    <Режим записи> (необязательный)
    Тип: РежимЗаписиДокумента. Позволяет выбрать один из возможных режимов записи.
    Значение по умолчанию: Запись
    <Режим проведения> (необязательный)
    Тип: РежимПроведенияДокумента. Позволяет выбрать один из возможных режимов проведения.
    Значение по умолчанию: Неоперативный
    Описание:
    Записывает документ в базу данных.
    Примечание:
    Для документов с поддержкой уникальности номеров в процессе записи, если нужно, проверяется уникальность номера.
    Пример:
    Код:
    Попытка
    НовДокумент.Записать(РежимЗаписиДокумента.Проведение);
    Исключение
    Предупреждение("Невозможно провести документ.");
    КонецПопытки;
    
    для тебя
    Код:
    ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
    
    И вообще
    nomad_irk прав легче Групопй обработкой. Поставить галочку обрабатывать ТЧ и вперед
  7. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    В общем вот весь код:
    Код:
    ВыборкаДокПриема = Документы.ПриемНаРаботуВОрганизацию.Выбрать();
    Пока ВыборкаДокПриема.Следующий() Цикл
    ДокОбъект = ВыборкаДокПриема.ПолучитьОбъект();
    Для каждого Стр Из ДокОбъект.ОсновныеНачисления Цикл
    Если Стр.ВидРасчета.Наименование = "Районный коэффициент" Тогда
    Стр.Показатель1=70;
    КонецЕсли;
    КонецЦикла;
    //ДокОбъект.Записать();
    ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
    КонецЦикла;
    Предупреждение("Обработка успешно выполнена!");
    
    
    
    Всем спасибо.
    По поводу групповой обработки объясните все таки, возможно ли там условия делать? Как уже говорил, мне нужно ставить условие, если ВидРасчета = Районный Коэффициент, то только тогда менять.
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    717
    Баллы:
    204
    Очень даже получится. В этой обработке есть отбор по любому реквизиту объекта, в том числе и реквизитам его ТабличныхЧастей.

    Попробуйте, понравится :)

    р.s.....имхо, изобретать велосипед полезно ТОЛЬКО в случае самообучения.......
  9. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Спасибо за совет. У меня как раз случай обучения, я как знаете из разряда "С 1С работаю недавно" :)
    Вот надо изучать и изучать, а за что взяться не знаю, может посоветуете, с чего начать обучение именно программированию в 1С?
    Поскольку уровень свой сейчас оцениваю, как чуть выше чем нулевой. Могу писать обработки и отчеты, но только почитая форумы или справки какие-нибудь, то есть тяп ляп получается, немножко там, немножко тут, что само по себе не совсем положительно сказывается на понимании.
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    717
    Баллы:
    204
    Настраиваем обработку:

    [​IMG]

    Далее настраиваем отбор:

    [​IMG]

    Далее включаем возможность редактирования всех реквизитов:

    [​IMG]

    Выбираем сам реквизит который хотим изменить:

    [​IMG]

    ну и наконец присваиваем нужное значение реквизиту и нажимаем ВЫПОЛНИТЬ.

    [​IMG]
  11. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    nomad_irk, спасибо большое даже за скриншоты.
  12. ZoiaKF
    Offline

    ZoiaKF

    Регистрация:
    26 апр 2015
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте! Объясните, пожалуйста, в групповой обработке получится в документе обновить цены по справочнику номенклатуры ? БП 1С 8,3, документ Отчет производства за смену, справочник Номенклатур с установленными плановыми ценами, необходимо обновить цены в документе по справочнику. Я помню, что раньше такое было возможно в групповом изменении реквизитов (не помню точное название, а может это было только в УТ).
  13. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Обычно цена это не реквизит у справонника, а просто вывод на форме элемента данных из регисра сведенйи цены номенклатуры, а цены устанавливаются не в справочнике, а документом установка цен номенклатуры
  14. ZoiaKF
    Offline

    ZoiaKF

    Регистрация:
    26 апр 2015
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Понятно. Да, цены установила Установкой цен, да, в справочнике же ссылка на Установку, я думала, что цена при установке присваивается справочнику. Вообще, было бы удобно иметь стандартную возможность изменить реквизиты точно также, как и при первичном заполнении, например, или, если бы, групповая обработка позволяла применять ссылки. Спасибо.
  15. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну вопрос спорны. Тогда сразу встает вопрос на какую дату эта цена? в обработке Вы же нигде не указываете,

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