Цитата(endru @ 19.08.11, 12:41) необходимо зарегистрироваться для просмотра ссылки
Напишите обработку, которая пройдется по докам, поделит сумму на к-во и занесет в цену.
Цитата(serg73 @ 19.08.11, 14:44) необходимо зарегистрироваться для просмотра ссылки
Замечательно, именно я это и хочу. Но моих знаний по 1С (а точнее отсутствие этих знаний) не хватает для написании этой обработки.
Можете за основу взять следующее.
Создайте новую обработку с реквизитами ВыбНачПериода и ВыбКонПериода типа дата и кнопкой с формулой Выполнить(). В модуле добавьте нижеприведенный текст. Если необходимо, добавьте проверку на вид документа, а также, если есть такие, рассмотрите варианты, когда реквизиты цены, суммы, к-ва, коэффициента имеют отличные от ЦенаБезНДС, СуммаБезНДС и т.д. идентификаторы или вовсе отсутствуют.
Экспериментировать на копии.
//*********************************************************************
Функция ЕстьРеквизитМнЧ(ИмяРеквизита,ВидДокумента) Экспорт
Перем Реквизит;
Если (ПустоеЗначение(ВидДокумента) = 1) ИЛИ
(ПустоеЗначение(ИмяРеквизита) = 1) Тогда
Возврат 0;
КонецЕсли;
Реквизит=Метаданные.Документ(ВидДокумента).РеквизитТабличнойЧасти(ИмяРеквизита);
Возврат Реквизит.Выбран();
КонецФункции //ЕстьРеквизитМнЧ()
//*********************************************************************
Процедура Выполнить()
Док=СоздатьОбъект("Документ");
Док.ВыбратьДокументы(ВыбНачПериода, ВыбКонПериода);
Пока Док.ПолучитьДокумент()=1 Цикл
Если ЕстьРеквизитМнЧ("ЦенаБезНДС",Док.Вид())=0 Тогда
Продолжить;
КонецЕсли; // ЕстьРеквизитМнЧ("ЦенаБезНДС",Док.Вид())=0
Док.ВыбратьСтроки();
Если Док.ПолучитьСтроку()=1 Тогда
Цена=Док.ПолучитьАтрибут("ЦенаБезНДС");
Если Цена<>Окр(Цена,2) Тогда
Продолжить;
КонецЕсли; // Док.ПолучитьАтрибут("ЦенаБезНДС")
Сообщить("Редактирование цен в документе "+Док.ТекущийДокумент());
Попытка
Док.УстановитьАтрибут("ЦенаБезНДС",(Док.ПолучитьАтрибут("СуммаБезНДС")/(Док.ПолучитьАтрибут("Коэффициент")*Док.ПолучитьАтрибут("Кво"))));
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли; // Док.ПолучитьСтроку()=1
Попытка
Док.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецПроцедуры //Выполнить