При попытке проведения документа переоценки выходит вот такая бяка. что с ней делать? >8-<
Операция.Содержание="Переоценка док.№"+НомерДок;
{Документ.ПереоценкаРозница.Модуль Документа(194)}: Недопустимая операция
Вид для печати
При попытке проведения документа переоценки выходит вот такая бяка. что с ней делать? >8-<
Операция.Содержание="Переоценка док.№"+НомерДок;
{Документ.ПереоценкаРозница.Модуль Документа(194)}: Недопустимая операция
Модуль в студию !
Вот текст модуля, ошибка вроде здесь, в реквизитах шапки есть отдел и склад, остальные неиспользуемые (как мне кажется) субконто я закоментировал
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ
//
//******************************************************************************
// ПроведениеПоРегистрам()
//
// Параметры:
// Нет.
//
// Возвращаемое значение:
// Нет.
//
// Описание:
// Проведение по регистрам оперативного учета.
//
Процедура ПроведениеПоРегистрам()
Перем ВремРегистры;
Перем ВремОстаткиТМЦ;
Перем ТаблицаДокумента;
Перем ФирмаДляОстатковТМЦ;
// Удаление движений по регистрам.
Для Номер = 1 По Метаданные.Регистр() Цикл
ОчиститьДвижения("Регистр."+Метаданные.Регистр(Номер).Идентификатор);
КонецЦикла;
// Таблица для хранения переоцениваемых товаров и их продажных цен с целью
// последующего списания партий
ТабОстатков = СоздатьОбъект("ТаблицаЗначений");
ТабОстатков.НоваяКолонка("Номенклатура", "Справочник.Номенклатура");
ТабОстатков.НоваяКолонка("Количество", "Число");
ТабОстатков.НоваяКолонка("ЦенаПрод", "Число");
ВыгрузитьТабличнуюЧасть(ТаблицаДокумента);
// надо привести таблицу к стандартно понимаемому процедурами проведения виду
ТаблицаДокумента.НоваяКолонка("СуммаУпр");
ТаблицаДокумента.НоваяКолонка("СуммаРуб");
ТаблицаДокумента.НоваяКолонка("СкидкаРуб");
ТаблицаДокумента.НоваяКолонка("Сумма");
ТаблицаДокумента.НоваяКолонка("СуммаНДС");
ТаблицаДокумента.НоваяКолонка("СуммаНП");
ТаблицаДокумента.НоваяКолонка("СтавкаНДС");
ТаблицаДокумента.НоваяКолонка("СтавкаНП");
ТаблицаДокумента.НоваяКолонка("ПродСтоимость");
Регистр.ОстаткиТМЦ.Склад = Склад;
Регистр.ОстаткиТМЦ.Фирма = Фирма;
КурсРубля = глКурсДляВалюты(глРубли, ДатаДок);
КолСтрок = ТаблицаДокумента.КоличествоСтрок();
Для Сч = 1 По КолСтрок Цикл
ТаблицаДокумента.ПолучитьСтрокуПоНомеру(КолСтрок - Сч +1);
// услуги здесь не учитываем
Если ТаблицаДокумента.Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Услуга Тогда
Продолжить;
КонецЕсли;
// если цена не менялась - движения не делаем
Если ТаблицаДокумента.ЦенаСтарая = ТаблицаДокумента.ЦенаНовая Тогда
ТаблицаДокумента.УдалитьСтроку();
Продолжить;
КонецЕсли;
ТаблицаДокумента.СуммаРуб = глПересчет (
ТаблицаДокумента.Количество * ТаблицаДокумента.ЦенаСтарая,
Валюта, Курс,
глРубли, КурсРубля);
ТаблицаДокумента.СкидкаРуб = 0 ;
ТаблицаДокумента.Количество = ТаблицаДокумента.Количество * ТаблицаДокумента.Коэффициент;
ТаблицаДокумента.ПродСтоимость = ТаблицаДокумента.СуммаРуб;
// измерения
Регистр.ОстаткиТМЦ.Номенклатура = ТаблицаДокумента.Номенклатура;
Регистр.ОстаткиТМЦ.ЦенаПрод = глПересчет(
ТаблицаДокумента.ЦенаНовая/ТаблицаДокумента.Коэффициент,
Валюта, Курс,
глРубли, КурсРубля);
// ресурсы
Регистр.ОстаткиТМЦ.Количество = ТаблицаДокумента.Количество;
Регистр.ОстаткиТМЦ.Внутреннее = 1;
// выполним движение
Регистр.ОстаткиТМЦ.ДвижениеПриходВыполнить();
ТабОстатков.НоваяСтрока();
ТабОстатков.Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
ТабОстатков.Количество = Регистр.ОстаткиТМЦ.Количество;
ТабОстатков.ЦенаПрод = Регистр.ОстаткиТМЦ.ЦенаПрод;
КонецЦикла;
ФирмаДляОстатковТМЦ = глФирмаДляОстатковТМЦ(Фирма);
СписокПараметров = СоздатьОбъект("СписокЗначений");
СписокПараметров.ДобавитьЗначение(ТекущийДокумент(),"ТекДок");
СписокПараметров.ДобавитьЗначение(Склад, "Склад");
СписокПараметров.ДобавитьЗначение(Фирма, "Фирма");
СписокПараметров.ДобавитьЗначение(ФирмаДляОстатковТМЦ,"ФирмаДляОстатковТМЦ");
СписокПараметров.ДобавитьЗначение(глКО.Перемещение, "КодОперации");
ВремРегистры = СоздатьОбъект("Регистры");
ВремОстаткиТМЦ = ВремРегистры.ОстаткиТМЦ;
ВремПартииТМЦ = ВремРегистры.ПартииНаличие;
глФильтрОстатковТМЦ(Контекст,ТаблицаДокумента, СписокПараметров, ВремОстаткиТМЦ);
глФильтрПартийТМЦ(Контекст, ТаблицаДокумента, СписокПараметров, ВремПартииТМЦ);
Если ИтогиАктуальны() = 0 Тогда
ВремРегистры.Актуальность(1);
ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());
КонецЕсли;
// остатки ТМЦ
Если глСписаниеОстатковТМЦ (Контекст,ТаблицаДокумента,СписокПараметров, ВремОстаткиТМЦ)=0 Тогда
Возврат;
КонецЕсли;
ТаблицаДокумента.НоваяКолонка("Партия", "Справочник.Партии");
ТаблицаДокумента.Свернуть("НомерСтрокиДокумента, Номенклатура, Единица, Коэффициент, СтавкаНДС, СтавкаНП, Партия", "Количество, Сумма, СуммаУпр, СуммаРуб, СкидкаРуб, СуммаНДС, СуммаНП, ПродСтоимость");
ТЗПартий = СоздатьОбъект("ТаблицаЗначений");
глСписаниеПартийТМЦ (Контекст,ТаблицаДокумента,СписокПараметров, ВремПартииТМЦ, ТЗПартий);
ТЗПартий.ВыбратьСтроки();
Пока ТЗПартий.ПолучитьСтроку() = 1 Цикл
ОстКоличество = ТЗПартий.Количество;
Регистр.ПартииНаличие.Фирма = ТЗПартий.Фирма;
Регистр.ПартииНаличие.МОЛ = ТЗПартий.МОЛ;
Регистр.ПартииНаличие.Номенклатура = ТЗПартий.Номенклатура;
Регистр.ПартииНаличие.СтатусПартии = ТЗПартий.СтатусПартии;
Регистр.ПартииНаличие.Партия = ТЗПартий.Партия;
Регистр.ПартииНаличие.ДатаПартии = ТЗПартий.ДатаПартии;
Регистр.ПартииНаличие.Количество = ТЗПартий.Количество;
Регистр.ПартииНаличие.СуммаРуб = ТЗПартий.СуммаРуб;
Регистр.ПартииНаличие.СуммаУпр = ТЗПартий.СуммаУпр;
Регистр.ПартииНаличие.СуммаБезНДС = ТЗПартий.СуммаБезНДС;
Регистр.ПартииНаличие.КодОперации = глКО.Перемещение;
ТабОстатков.ВыбратьСтроки();
Пока ТабОстатков.ПолучитьСтроку() = 1 Цикл
Если ТабОстатков.Количество = 0 Тогда
Продолжить;
КонецЕсли;
Если ТабОстатков.Номенклатура = ТЗПартий.Номенклатура Тогда
Кол = Мин(ОстКоличество, ТабОстатков.Количество);
Регистр.ПартииНаличие.Количество = Кол;
ТабОстатков.Количество = ТабОстатков.Количество - Кол;
ОстКоличество = ОстКоличество - Кол;
Регистр.ПартииНаличие.ПродСтоимость = Кол * ТабОстатков.ЦенаПрод;
Регистр.ПартииНаличие.ДвижениеПриходВыполнить();
Если ОстКоличество = 0 Тогда
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры // ПроведениеПоРегистрам()
////////////////////////////////////////////////////////////////////////////////
// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ
//
//******************************************************************************
// Предопределенная процедура.
//
Процедура ОбработкаПроведения(ВидыДвижений)
перем Счет_;
перем Счет_1, Цены_, ЦенаРоз_, ЦенаПрих_;
// Проверка заполненности обязательных реквизитов.
Если глВсеРеквизитыДокументаЗаполнены(Контекст,
"Фирма,Склад,Валюта")=0 Тогда
Возврат;
КонецЕсли;
Если Склад.РозничныйСклад = 0 Тогда
глНеПроводить(Контекст,"Выбранный склад не является розничным!
|Переоценка на таком складе не производится!");
КонецЕсли;
// Проведение по регистрам оперативного учета.
Если (ПустоеЗначение(ВидыДвижений) = 1) ИЛИ (Найти(ВидыДвижений, "Регистр") <> 0) Тогда
ПроведениеПоРегистрам();
Если СтатусВозврата() = 0 Тогда
Возврат;
КонецЕсли;
КонецЕсли;
глПриПроведении(Контекст, ВидыДвижений);
Операция.Содержание="Переоценка док.№"+НомерДок; // ВОТ ЗДЕСЬ ОРЕТ ОШИБКУ
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Цены_=СоздатьОбъект("Справочник.Цены");
Цены_.ИспользоватьВладельца(Номенклатура);
Цены_.ВыбратьЭлементы();
Пока Цены_.ПолучитьЭлемент()=1 Цикл
//Сообщить(Цены_.Процент);
//Сообщить(Цены_.Цена.Получить(ТекущаяДата()));
//Сообщить(Цены_.ТипЦен.Наименование);
Если Цены_.ТипЦен.Наименование="Приходная" тогда
//Сообщить("Попали!!!");
ЦенаПрих_=Цены_.Цена.Получить(ТекущаяДата());
КонецЕсли;
Если Цены_.ТипЦен.Наименование="Розничная" тогда
//Сообщить("Попали!!!");
ЦенаРоз_=Цены_.Цена.Получить(ТекущаяДата());
КонецЕсли;
КонецЦикла;
Если Склад.Наименование="Головные уборы" тогда
// 41.1. --- 43
//Опер.НоваяПроводка();
//Опер.Содержание="Перем. розн.";
Операция.НоваяПроводка();
Операция.РазделительУчета=ЮрЛицо;
Операция.СодержаниеПроводки="Перем. розн.";
Счет_1.НайтиПоКоду("41.1");
Операция.Дебет.Счет=Счет_1.ТекущийСчет();
Счет_1.НайтиПоКоду("43");
Операция.Кредит.Счет=Счет_1.ТекущийСчет();
Операция.Дебет.Субконто(1,Номенклатура);
Операция.Дебет.Субконто(2,Склад);
Операция.Дебет.Субконто(3,Отдел);
Операция.Кредит.Субконто(1,Номенклатура);
//Операция.Кредит.Субконто(2,СкладПолучатель);
//Операция.Кредит.Субконто(3,Отдел1);
Операция.Сумма=(ЦенаНовая-ЦенаСтарая)*Количество;
Операция.СуммаОперации=Операция.СуммаОперации+(ЦенаНовая-ЦенаСтарая)*Количество;
// 41.1. --- 43
иначе
// 42.1. --- 42
//Опер.НоваяПроводка();
//Опер.Содержание="Перем. розн.";
Операция.НоваяПроводка();
Операция.РазделительУчета=ЮрЛицо;
Операция.СодержаниеПроводки="Перем. розн.";
Операция.Дебет.Счет=Склад.Счет;
Счет_1.НайтиПоКоду("42");
Операция.Кредит.Счет=Счет_1.ТекущийСчет();
Операция.Дебет.Субконто(1,Номенклатура);
Операция.Дебет.Субконто(2,Склад);
Операция.Дебет.Субконто(3,Отдел);
Операция.Кредит.Субконто(1,Номенклатура);
// Операция.Кредит.Субконто(2,СкладПолучатель);
// Операция.Кредит.Субконто(3,Отдел1);
Операция.Сумма=(ЦенаНовая-ЦенаСтарая)*Количество;
Операция.СуммаОперации=Операция.СуммаОперации+(ЦенаНовая-ЦенаСтарая)*Количество;
// 42.1. --- 42
КонецЕсли;
КонецЦикла;
Операция.Записать();
//вася 04-03-03 конец
КонецПроцедуры //ОбработкаПроведения()
////////////////////////////////////////////////////////////////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
Вроде в моделе нет причин ругни. Проверь: 1)у документа стоит признак БухУчета;
2) Других причин пока не вижу. (а может компоненты БухУчет нет?)
Скорее всего не установлен Бухучет.... как и сказал moroder
Еще вопрос зачем вам с ТиСе использовать "План Счетов" ?
Или это веже комплекс ?