Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Май 2019, 18:52
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Изменить табличную часть  (Прочитано 237 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн byte777

Доброго времени суток! Как это сделать ругается на количество.
&НаКлиенте
Процедура Изменить(Команда)
    ИзменитьНаСервере();
КонецПроцедуры
 
&НаСервере
Процедура ИзменитьНаСервере()
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |   ПриходнаяНакладнаяМатериалы.Количество,
    |   ПриходнаяНакладнаяМатериалы.Ссылка
    |ИЗ
    |   Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы
    |ГДЕ
    |   ПриходнаяНакладнаяМатериалы.Ссылка = &Ссылка";
   
    Запрос.УстановитьПараметр("Ссылка", Документ);
   
    РезультатЗапроса = Запрос.Выполнить();
   
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
   
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ДокументОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
        ДокументОбъект.Материалы.Количество = 12;
        ДокументОбъект.Записать();
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
    КонецЦикла;
   
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   
   
КонецПроцедуры
Учиться учиться учиться!


Оффлайн LexaK

  • *****
  • Сообщений: 1654
  • РЕПУТАЦИЯ: 471
  • КПД: 28%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
ну хоть чуть-чуть думайте.
Материалы - это табличная часть
она состоит из строк 0,1,2,...
и уже в строках есть Количество

т.е. сначала надо определить/решить в какой строке менять количество,
например в первой

ДокументОбъект.Материалы[0].Количество = 12;

а вообще все очень грустно, каша такая
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн byte777

Спасибо ГУРУ 1С. Вот так сделал.
Число = 0;
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            ДокументОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
      
      ДокументОбъект.Материалы[Число].Количество = 12;
      Число = Число + 1;

Добавлено: 13 Мар 2019, 14:17

Хотя так не работает, необходимо посчитать количество строк в табличной части а как это сделать?
Меняется только первая строка.
Учиться учиться учиться!

Последний раз редактировалось: byte777; 13 Мар 2019, 14:17. Причина: Объединение сообщений

Оффлайн LexaK

  • *****
  • Сообщений: 1654
  • РЕПУТАЦИЯ: 471
  • КПД: 28%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
да и не удивительно

на цикл внимательно посмотрите, что в цикле происходит?
допустим у вас 100 строчек в документе
вы сто раз получаете и записываете ОДИН И ТОТ-ЖЕ документ!!!
вынесите получение объекта документа (ПЕРЕД циклом) и запись документа (ПОСЛЕ цикла)

(ну хоть что-то, хоть как-то)
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн byte777

Как я понял мне цикл тут один только нужен посчитать количество строк в табличной части документа. Как Вы сказали ошибка получается.
Число = 0;
   ДокументОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      
      ДокументОбъект.Материалы[Число].Количество = 777;
      Число = Число + 1;
      
      
      // Вставить обработку выборки ВыборкаДетальныеЗаписи
   КонецЦикла;
   ДокументОбъект.Записать();
Учиться учиться учиться!

Оффлайн LexaK

  • *****
  • Сообщений: 1654
  • РЕПУТАЦИЯ: 471
  • КПД: 28%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
АААААА, У вас ВыборкаДетальныеЗаписи - еще не прочитана! (ну что же все так туго?)
возьмите документ из другой переменной (загадка - из какой?) (документ, у вас в обработке, уже есть)
(квест продолжается)
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн DmitriyF

  • *****
  • Сообщений: 843
  • РЕПУТАЦИЯ: 63
  • КПД: 7%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
Как я понял мне цикл тут один только нужен посчитать количество строк в табличной части документа. Как Вы сказали ошибка получается.
Число = 0;
   ДокументОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      
      ДокументОбъект.Материалы[Число].Количество = 777;
      Число = Число + 1;
      
      
      // Вставить обработку выборки ВыборкаДетальныеЗаписи
   КонецЦикла;
   ДокументОбъект.Записать();
Если так хочешь сделать Запросом, то не надо в нем выбирать Ссылку. Возьми ее из Параметра который передаешь в запрос. Ну, а дальше уже LexaK почти даже решил за тебя)

Оффлайн antoneus

  • ***
  • Сообщений: 123
  • РЕПУТАЦИЯ: 32
  • КПД: 26%
  • Регистрация: 2018-11-22
  • Сайт: 
  • Профессия: Программист 1С
&НаСервере
Процедура ИзменитьНаСервере()
 
    ДокументОбъект = Документ.ПолучитьОбъект();
    Для каждого ТекСтрока из ДокументОбъект.Материалы Цикл
        ТекСтрока.Количество = 12;
    КонецЦикла;
    ДокументОбъект.Записать();
   
КонецПроцедуры


Теги:
 

В 1с предприятие 8.3 управление торговлей 11.1 как изменить цену на несколько товаров с одним и тем же артиклем на последнюю введенную цену с помощью загрузки обработки или как это сделать в 1с с помощью программирования? прилагаю полный текст обработки

Автор сергей123Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 178
Последний ответ 11 Фев 2019, 15:15
от сергей123
Часть четвертая: переход на «1С» версии «3.0». Где в программе находятся «Параметры учета»? Алгоритм настройки кадрового учета в новой версии программы «1С»

Автор 1cwikiРаздел Зарплата и управление персоналом

Ответов: 0
Просмотров: 5589
Последний ответ 20 Мар 2015, 12:58
от 1cwiki
Кнопка "Изменить"

Автор LanniaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 16
Просмотров: 2162
Последний ответ 03 Июн 2017, 01:50
от Dethmontt
Почему не грузиться в 1с новый производитель с тем же артикулом? Как изменить обработку что-бы артикул не проверялся а сразу заводился в справочник и суммировался с уже существующим товаром с выставлением последней цены при последней загрузки?

Автор сергей123Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 134
Последний ответ 14 Фев 2019, 11:19
от сергей123
табличная часть, реквизит "сумма"

Автор otabekРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 3181
Последний ответ 01 Мар 2014, 22:27
от DmitriyF

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
35 Сообщений
wise wise
33 Сообщений
AIFrame AIFrame
32 Сообщений
alexandr_ll
31 Сообщений
DmitriyF DmitriyF
13 Сообщений
SGIRG SGIRG
12 Сообщений
vova-1c@xaker.ru
11 Сообщений
Shohana
11 Сообщений
Мария112689
10 Сообщений
kiksi
10 Сообщений

* Кто онлайн

  • Точка Гостей: 315
  • Точка Скрытых: 0
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal