|
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
|
Все получилось как хотел. Спасибо!
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший