пересчитать цены в отчете производства за смену
26.04.2011
21:06
#1
"Бухгалтерия 2.0 Платформа 8.2
Ситуация такая:
С начала года по текущий день в учетной политике стояла не та плановая цена. в документах отчет производства за смену, которых набралось достаточно, соответственно указана не та цена. В каждом документе около 50 наименований.
Как массово пересчитать цену?
В документе реализация товаров и услуг, есть кнопка "Изменить", которая вызывает обработку "ОбработкаТабличнойЧастиТовары". Там как раз есть позможность установить цену по типу.
Попытался сделать такую же в документе "отчет производства за смену"
В документе "Реализация Товаров и услуг" было так:
Процедура КоманднаяПанельТоварыДействиеИзменить(Кнопка)
// Получим контекст обработки
ИзменениеТабличнойЧастиТовары = Обработки.ОбработкаТабличнойЧастиТовары.Создать();
ФормаИзменениеТабличнойЧастиТовары = ИзменениеТабличнойЧастиТовары.ПолучитьФорму(,ЭтаФорма);
//Установим реквизиты и переменные формы.
ФормаИзменениеТабличнойЧастиТовары.ДокументОбъект = ЭтотОбъект;
ФормаИзменениеТабличнойЧастиТовары.мФормаДокумента = ЭтаФорма;
ФормаИзменениеТабличнойЧастиТовары.мЕстьНДС = УчитыватьНДС;
ФормаИзменениеТабличнойЧастиТовары.мЕстьЦенаВРознице = Ложь;
ФормаИзменениеТабличнойЧастиТовары.мСпособЗаполненияЦен = Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры;
//Перенесем табличную часть
ИзменениеТабличнойЧастиТовары.Товары.Загрузить(Товары.Выгрузить());
// Открываем форму обработки
ФормаИзменениеТабличнойЧастиТовары.Открыть();
КонецПроцедуры
При этом все работало.
В Отчете производства за смену, сделал так:
Процедура КоманднаяПанельТоварыДействиеИзменить(Кнопка)
ИзменениеТабличнойЧастиТовары = Обработки.ОбработкаТабличнойЧастиТовары.Создать();
ФормаИзменениеТабличнойЧастиТовары = ИзменениеТабличнойЧастиТовары.ПолучитьФорму(,ЭтаФорма);
//Установим реквизиты и переменные формы.
ФормаИзменениеТабличнойЧастиТовары.ДокументОбъект = ДокументОбъект;
ФормаИзменениеТабличнойЧастиТовары.мФормаДокумента = ЭтаФорма;
ФормаИзменениеТабличнойЧастиТовары.мЕстьНДС = Ложь;
ФормаИзменениеТабличнойЧастиТовары.мЕстьЦенаВРознице = Ложь;
ФормаИзменениеТабличнойЧастиТовары.мСпособЗаполненияЦен = Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры;
//Перенесем табличную часть
ИзменениеТабличнойЧастиТовары.Товары.Загрузить(Продукция.Выгрузить());
// Открываем форму обработки
ФормаИзменениеТабличнойЧастиТовары.Открыть();
КонецПроцедуры
Выдает ошибку "Не задан документ для обработки. Эта обработка может вызывается только из формы документа."
Вот процедура, из модуля формы обработки:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
// Если не установлено значения объекта редактируемого документа,
// то форму обработки открывать не нужно.
Если ДокументОбъект = Неопределено Тогда
Отказ = Истина;
Предупреждение("Не задан документ для обработки!
|Эта обработка может вызывается только из формы документа.", , Заголовок);
Возврат;
КонецЕсли;
//Товары.ЗагрузитьКолонку(Товары.ВыгрузитьКолонку("НомерСтроки"), "НомерСтрокиДокумента");
КонецПроцедуры // ПередОткрытием()
Не пойму, почему в реализации оно работает, а в отчета производмтва нет(((
Еще есть вариант написать внешнюю обработку. с двумя формами, в одной задается документ для обработки, затем открывается основная форма обработки, но опять та же ошибка(("
Ситуация такая:
С начала года по текущий день в учетной политике стояла не та плановая цена. в документах отчет производства за смену, которых набралось достаточно, соответственно указана не та цена. В каждом документе около 50 наименований.
Как массово пересчитать цену?
В документе реализация товаров и услуг, есть кнопка "Изменить", которая вызывает обработку "ОбработкаТабличнойЧастиТовары". Там как раз есть позможность установить цену по типу.
Попытался сделать такую же в документе "отчет производства за смену"
В документе "Реализация Товаров и услуг" было так:
Процедура КоманднаяПанельТоварыДействиеИзменить(Кнопка)
// Получим контекст обработки
ИзменениеТабличнойЧастиТовары = Обработки.ОбработкаТабличнойЧастиТовары.Создать();
ФормаИзменениеТабличнойЧастиТовары = ИзменениеТабличнойЧастиТовары.ПолучитьФорму(,ЭтаФорма);
//Установим реквизиты и переменные формы.
ФормаИзменениеТабличнойЧастиТовары.ДокументОбъект = ЭтотОбъект;
ФормаИзменениеТабличнойЧастиТовары.мФормаДокумента = ЭтаФорма;
ФормаИзменениеТабличнойЧастиТовары.мЕстьНДС = УчитыватьНДС;
ФормаИзменениеТабличнойЧастиТовары.мЕстьЦенаВРознице = Ложь;
ФормаИзменениеТабличнойЧастиТовары.мСпособЗаполненияЦен = Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры;
//Перенесем табличную часть
ИзменениеТабличнойЧастиТовары.Товары.Загрузить(Товары.Выгрузить());
// Открываем форму обработки
ФормаИзменениеТабличнойЧастиТовары.Открыть();
КонецПроцедуры
При этом все работало.
В Отчете производства за смену, сделал так:
Процедура КоманднаяПанельТоварыДействиеИзменить(Кнопка)
ИзменениеТабличнойЧастиТовары = Обработки.ОбработкаТабличнойЧастиТовары.Создать();
ФормаИзменениеТабличнойЧастиТовары = ИзменениеТабличнойЧастиТовары.ПолучитьФорму(,ЭтаФорма);
//Установим реквизиты и переменные формы.
ФормаИзменениеТабличнойЧастиТовары.ДокументОбъект = ДокументОбъект;
ФормаИзменениеТабличнойЧастиТовары.мФормаДокумента = ЭтаФорма;
ФормаИзменениеТабличнойЧастиТовары.мЕстьНДС = Ложь;
ФормаИзменениеТабличнойЧастиТовары.мЕстьЦенаВРознице = Ложь;
ФормаИзменениеТабличнойЧастиТовары.мСпособЗаполненияЦен = Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры;
//Перенесем табличную часть
ИзменениеТабличнойЧастиТовары.Товары.Загрузить(Продукция.Выгрузить());
// Открываем форму обработки
ФормаИзменениеТабличнойЧастиТовары.Открыть();
КонецПроцедуры
Выдает ошибку "Не задан документ для обработки. Эта обработка может вызывается только из формы документа."
Вот процедура, из модуля формы обработки:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
// Если не установлено значения объекта редактируемого документа,
// то форму обработки открывать не нужно.
Если ДокументОбъект = Неопределено Тогда
Отказ = Истина;
Предупреждение("Не задан документ для обработки!
|Эта обработка может вызывается только из формы документа.", , Заголовок);
Возврат;
КонецЕсли;
//Товары.ЗагрузитьКолонку(Товары.ВыгрузитьКолонку("НомерСтроки"), "НомерСтрокиДокумента");
КонецПроцедуры // ПередОткрытием()
Не пойму, почему в реализации оно работает, а в отчета производмтва нет(((
Еще есть вариант написать внешнюю обработку. с двумя формами, в одной задается документ для обработки, затем открывается основная форма обработки, но опять та же ошибка(("
26.04.2011
21:48
#2
У этой обработки есть реквизит "ДокументОбъект", видимо у него тип - только документ "Реализация товаров услуг", если есть такое горячее желание использовать эту обработку в Акте, нужно Акт добавить в список типов реквизита "ДокументОбъект" обработки "ОбработкаТабличнойЧастиТовары"
А вообще, для чего изменять плановую стоимоть? Она же все равно при закрытии месяца откорректируется до фактической, какая бы ни была задана.
А вообще, для чего изменять плановую стоимоть? Она же все равно при закрытии месяца откорректируется до фактической, какая бы ни была задана.
1С 7.7 ТиС. Фильтр номенклатуры по наличию на складе.Обработка по закрытию 26 и 44 счетов в Комплексной автоматизации
Читают тему
(гостей: 1)