Имя: Пароль:
1C
1C 7.7
v7: Изменение табличной части доументов.
,
0 sung82
 
06.08.11
20:02
В течении дня набираются ТТН в количестве 200-300 шт. Потом надо найти в этих документах в табличной части по коду, определенное наименование продукции и изменить его количество, тип тары или удалить его вообще из выбранного документа. Подскажите как это лучше сделать?
1 KRV
 
06.08.11
20:13
Ну.. значит надо найти в этих документах в табличной части по коду, определенное наименование продукции и изменить его количество, тип тары или удалить его вообще из выбранного документа
2 Ork
 
06.08.11
20:15
(1) Поддержу. )))
"как это лучше сделать?" Можно коррегирующим документом, можно обработкой. Даже внешней.
3 ВотОнЯ
 
06.08.11
20:25
(0)Выборка SQL запросом.. Там же навешать условие на выборку только необходимых записей, получаем небольшую ТЗ с ИД дока, номером строки ТЧ, дальше дело техники...
4 sung82
 
06.08.11
20:40
Сформировал документ и в нем по определенному условию в табличной части выбрал все ТТН с данным товаром. Что надо написать, чтоб в выбранных документах были произведены описанные выше изменения.
5 andrewks
 
06.08.11
21:02
(4) написать нужно программу
6 sung82
 
06.08.11
21:06
"Написать программу". А можешь подсказать как?
7 Cthulhu
 
06.08.11
21:11
пригласить специалиста
8 Ork
 
06.08.11
21:11
(6) Ты лучше покажи - как делал, что не получилось...
9 sung82
 
06.08.11
21:19
Вопрос в том как одним документом изменить табличную часть другого доукмента. Ссозданием самого документа вопросов нет.
10 Ork
 
06.08.11
21:34
Лениво (для изменения количества) примерно так:

Докс=СоздатьОбъект("Документ");
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
   Докс.НайтиДокумент(ДокументИзСтрокиТабличнойЧасти);
   НужноЗаписать=0;
   Докс.ВыбратьСтроки();
   Пока Докс.ПолучитьСтроку()=1 Цикл
       Если Докс.Продукция=ОбрабатываемаяПродукция Тогда
           Докс.Количество=Докс.Количество+1; //тут меняем количество в документе
           НужноЗаписать=1;
       КонецЕсли;
   КонецЦикла;
   Если НужноЗаписать=1 Тогда
       Докс.Записать(); //Вуаля - документ записан с изменениями
       Если НужноПерепроведение=1 Тогда
           Если Докс.Провести()=0 Тогда
               Сообщить("При изменении документа "+Докс+" херню спороли-с");
           КонецЕсли;
       КонецЕсли;
   КонецЕсли;
КонецЦикла;
11 Темный Эльф
 
06.08.11
21:36
(0)
Наверное, что-то типа
Док=создатьобъект("Документ.ТТН");
Док.выбратьдокументы();
Пока док.получитьдокумент()=1 цикл
если док.проведен()=1 тогда
док.выбратьстроки();
Пока док.получитьстроку()=1 цикл
если док.Товар.код=НужныйКод Тогда
Док.Кво=НужноеКоличество;
конецесли;
конеццикла;
док.записать();
Док.провести();
конецесли;
конеццикла;
12 sung82
 
06.08.11
21:38
Спасибо буду пробовать.
13 Конфигуратор1с
 
06.08.11
21:44
(11) а если в документе не менял количество - зачем проводить?
14 sung82
 
08.08.11
14:46
Все получилось как хотел. Спасибо!
Ошибка? Это не ошибка, это системная функция.