Помогите доработать обработку табличной части документов
15.03.2014
13:35
#1
"Добрый день.
Помогие новичку.
Есть код
Процедура Выполнить()
Если ПустоеЗначение(Док1)=1 Тогда
Предупреждение("Документ не задан");
Возврат;
КонецЕсли;
Если Док1.Проведен()=1 Тогда
Предупреждение("Документ проведен. Данная операция возможна только на непроведенном документе.");
Возврат;
КонецЕсли;
Док2 = СоздатьОбъект("Документ."+Док1.Вид());
Док2.НайтиДокумент(Док1.ТекущийДокумент());
Док2.ВыбратьСтроки();
Пока Док2.ПолучитьСтроку()=1 цикл
Ц=Док2.ПолучитьАтрибут("Цена");
К=Док2.ПолучитьАтрибут("Количество");
С=Ц * К-(((Ц * К)*13)/100);
Док2.УстановитьАтрибут("Сумма",С)
КонецЦикла;
Док2.Записать();
КонецПроцедуры
С помощью его могу обрабатывать документы только по одному изменяя сумму
Что нужно дописать что бы можно было группой обработать документы за период?
Пробывал сам ни че не получается, поэтому выложил только то что получилось"
Помогие новичку.
Есть код
Процедура Выполнить()
Если ПустоеЗначение(Док1)=1 Тогда
Предупреждение("Документ не задан");
Возврат;
КонецЕсли;
Если Док1.Проведен()=1 Тогда
Предупреждение("Документ проведен. Данная операция возможна только на непроведенном документе.");
Возврат;
КонецЕсли;
Док2 = СоздатьОбъект("Документ."+Док1.Вид());
Док2.НайтиДокумент(Док1.ТекущийДокумент());
Док2.ВыбратьСтроки();
Пока Док2.ПолучитьСтроку()=1 цикл
Ц=Док2.ПолучитьАтрибут("Цена");
К=Док2.ПолучитьАтрибут("Количество");
С=Ц * К-(((Ц * К)*13)/100);
Док2.УстановитьАтрибут("Сумма",С)
КонецЦикла;
Док2.Записать();
КонецПроцедуры
С помощью его могу обрабатывать документы только по одному изменяя сумму
Что нужно дописать что бы можно было группой обработать документы за период?
Пробывал сам ни че не получается, поэтому выложил только то что получилось"
17.03.2014
09:35
#2
Как минимум добавить в обработку форму, на нее поля для указания параметров отбора и кнопку для запуска отбора и процедуры обработки.
Выбирать за период документы, к каждому применять процедуру выше.
Выбирать за период документы, к каждому применять процедуру выше.
17.03.2014
11:55
#3
"Док1 = СоздатьОбъект("Документ." + НужныйВид);
Док1.УстановитьФильтр(0, 1, 1, 1, 1, 1); // выбираем непроведенные документы
Док1.ВыбратьДокументы(НачДата, КонДата);
Пока Док1.ПолучитьДокумент() = 1 Цикл
// вся ваша обработка посредством Док2
КонецЦикла;"
Док1.УстановитьФильтр(0, 1, 1, 1, 1, 1); // выбираем непроведенные документы
Док1.ВыбратьДокументы(НачДата, КонДата);
Пока Док1.ПолучитьДокумент() = 1 Цикл
// вся ваша обработка посредством Док2
КонецЦикла;"
17.03.2014
11:55
#4
Странно как то, сумму вы меняете, а цену нет. Выходит, что Цена*Количество не будет равно сумме, что не поддается логике, разве что имеется ввиду наличие скидки, но для ее отражения в разных конфигурациях придуманы разные способы.
P.S. Если есть возможность не тратить время на 7.7, не тратьте, направьте усилия на 8-ю версию платформы.
P.S. Если есть возможность не тратить время на 7.7, не тратьте, направьте усилия на 8-ю версию платформы.
Читают тему
(гостей: 1)