Здравствуйте!
При вводе хозинвентаря, спецодежды, спецостнастки в эксплуатацию (МБП) есть учетная политика, где стоит процент аммортизации 50%
Но с недавнего времени при вводе посуды требуется проводить операцию по полной цене, т.е. добавляю на форму флажек.
Но проблема в том, что не знаю где сделать, чтоб не шла дополнительная проводка на списание этого процента, а была всего одна проводка.
Код формы:
PHP код:
Перем СпСчетов, СпСчетовВыбора;
Перем ВремяНачалаРедактированияФормы Экспорт;
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ
////////////////////////////////////////////////////////////////////////////////
Процедура ПолучитьСпСчетов()
СпСчетовВыбора = Новый СписокЗначений;
СпСчетовВыбора.Добавить(ПланыСчетов.Основной.А10_9,ПланыСчетов.Основной.А10_9.Код+ " " +
СокрЛП(ПланыСчетов.Основной.А10_9.Наименование));
СпСчетовВыбора.Добавить(ПланыСчетов.Основной.А10_10,ПланыСчетов.Основной.А10_10.Код+ " " +
СокрЛП(ПланыСчетов.Основной.А10_10.Наименование));
КонецПроцедуры
Процедура Очистить(Кнопка)
обОчистить(Номенклатура);
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ УПРАВЛЕНИЯ ВНЕШНИМ ВИДОМ ФОРМЫ
////////////////////////////////////////////////////////////////////////////////
Процедура УстановитьДоступностьКолонок()
ТекСтрока = ЭлементыФормы.Номенклатура.ТекущиеДанные;
Колонки = ЭлементыФормы.Номенклатура.Колонки;
Если ТекСтрока = Неопределено Тогда
Возврат
КонецЕсли;
Если ТекСтрока.ВидМБП = Перечисления.ВидыМБП.Основной Тогда
Колонки.СрокИспользования.ТолькоПросмотр = Истина;
Колонки.СрокИспользования.Доступность = Ложь;
Колонки.СуммаАмортизацииМесяц.ТолькоПросмотр = Истина;
Колонки.СуммаАмортизацииМесяц.Доступность = Ложь;
Колонки.ЛиквидационнаяСтоимость.ТолькоПросмотр = Истина;
Колонки.ЛиквидационнаяСтоимость.Доступность = Ложь;
ИначеЕсли ТекСтрока.ВидМБП = Перечисления.ВидыМБП.Спецодежда Тогда
Колонки.СрокИспользования.ТолькоПросмотр = Ложь;
Колонки.СрокИспользования.Доступность = Истина;
Колонки.СуммаАмортизацииМесяц.ТолькоПросмотр = Истина;
Колонки.СуммаАмортизацииМесяц.Доступность = Ложь;
Колонки.ЛиквидационнаяСтоимость.ТолькоПросмотр = Истина;
Колонки.ЛиквидационнаяСтоимость.Доступность = Ложь;
ИначеЕсли ТекСтрока.ВидМБП = Перечисления.ВидыМБП.Спецоснастка Тогда
Колонки.СрокИспользования.ТолькоПросмотр = Истина;
Колонки.СрокИспользования.Доступность = Ложь;
Колонки.СуммаАмортизацииМесяц.ТолькоПросмотр = Ложь;
Колонки.СуммаАмортизацииМесяц.Доступность = Истина;
Колонки.ЛиквидационнаяСтоимость.ТолькоПросмотр = Истина;
Колонки.ЛиквидационнаяСтоимость.Доступность = Ложь;
ИначеЕсли ТекСтрока.ВидМБП = Перечисления.ВидыМБП.ВременныеСооружения Тогда
Колонки.СрокИспользования.ТолькоПросмотр = Ложь;
Колонки.СрокИспользования.Доступность = Истина;
Колонки.СуммаАмортизацииМесяц.ТолькоПросмотр = Истина;
Колонки.СуммаАмортизацииМесяц.Доступность = Ложь;
Колонки.ЛиквидационнаяСтоимость.ТолькоПросмотр = Ложь;
Колонки.ЛиквидационнаяСтоимость.Доступность = Истина;
КонецЕсли;
Если ТекСтрока.СпособНачисленияАмортизации = Перечисления.СпособыНачисленияАмортизацииМБП.Линейный Тогда
Колонки.ОбъемПродукции.ТолькоПросмотр = Истина;
Колонки.ОбъемПродукции.Доступность = Ложь;
Иначе
Колонки.ОбъемПродукции.ТолькоПросмотр = Ложь;
Колонки.ОбъемПродукции.Доступность = Истина;
Колонки.СрокИспользования.ТолькоПросмотр = Истина;
Колонки.СрокИспользования.Доступность = Ложь;
Колонки.СуммаАмортизацииМесяц.ТолькоПросмотр = Истина;
Колонки.СуммаАмортизацииМесяц.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура УстановитьДоступностьЭлементов()
Если Организация.ФлагУчетаМатериаловВЭксплуатацииПоОстаточнойСтоимости Тогда
ЭлементыФормы.Номенклатура.Колонки.СуммаИзноса.Видимость = Ложь;
Иначе
ЭлементыФормы.Номенклатура.Колонки.Сумма.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ
////////////////////////////////////////////////////////////////////////////////
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
обПередОткрытием(ЭтотОбъект);
КонецПроцедуры
Процедура ПриОткрытии()
обПриОткрытии(ЭтотОбъект, ЭтаФорма);
обПросмотрПроведеного(ЭтотОбъект,ЭтаФорма);
Если ЭтоНовый() Тогда
Если обПустоеЗначение(ПараметрОбъектКопирования) Тогда
обПриВводеНового(ЭтотОбъект,ЭтаФорма,Истина);
Если ОбПустоеЗначение(Склад) Тогда
Склад = Организация.ОсновнойСклад;
КонецЕсли;
Если обПустоеЗначение(МОЛ) тогда
МОЛ = Склад.ОсновнойМОЛ;
КонецЕсли;
Если обПустоеЗначение(МОЛ) тогда
МОЛ = Организация.ОсновнойМОЛ;
КонецЕсли;
Если обПустоеЗначение(ВидМБП) Тогда
ВидМБП = Перечисления.ВидыМБП.Основной;
КонецЕсли;
Если обПустоеЗначение(СпособНачисленияАмортизации) Тогда
СпособНачисленияАмортизации = Перечисления.СпособыНачисленияАмортизацииМБП.Линейный;
КонецЕсли;
Иначе
обПриВводеНового(ЭтотОбъект,ЭтаФорма);
Для Каждого ТекСтрокаНоменклатуры Из Номенклатура Цикл
ТекСтрокаНоменклатуры.ПараметрыАмортизации = Справочники.ПараметрыАмортизацииТМЦ.ПустаяСсылка();
КонецЦикла;
КонецЕсли;
КонецЕсли;
лФорматнаяСтрока = обПолучитьФорматнуюСтрокуВалютнойСуммы(ПараметрыСеанса.ОсновнаяВалюта);
Колонки = ЭлементыФормы.Номенклатура.Колонки;
Колонки.ПервоначальнаяСтоимость.Формат = лФорматнаяСтрока;
Колонки.ПервоначальнаяСтоимость.ЭлементУправления.Формат = лФорматнаяСтрока;
Колонки.Сумма.Формат = лФорматнаяСтрока;
Колонки.Сумма.ЭлементУправления.Формат = лФорматнаяСтрока;
Колонки.СуммаИзноса.Формат = лФорматнаяСтрока;
Колонки.СуммаИзноса.ЭлементУправления.Формат = лФорматнаяСтрока;
Колонки.ЛиквидационнаяСтоимость.Формат = лФорматнаяСтрока;
Колонки.ЛиквидационнаяСтоимость.ЭлементУправления.Формат = лФорматнаяСтрока;
ПолучитьСпСчетов();
УстановитьДоступностьЭлементов();
КонецПроцедуры
Процедура ОбновлениеОтображения()
ЭлементыФормы.НадписьИтого.Заголовок = "Итого: "+обФорматСумма(Номенклатура.Итог("Сумма"));
КонецПроцедуры
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
обОбработкаОповещения(ЭтаФорма,ИмяСобытия, Параметр, Источник);
КонецПроцедуры
Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
Если ТипЗнч(ЗначениеВыбора) = Тип("СправочникСсылка.Номенклатура") Тогда
СтрокаТабличнойЧасти = ЭлементыФормы.Номенклатура.ТекущиеДанные;
СтрокаТабличнойЧасти.ТМЦ = ЗначениеВыбора;
НоменклатураТМЦПриИзменении(Неопределено);
КонецЕсли;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ДЕЙСТВИЯ КОМАНДНЫХ ПАНЕЛЕЙ ФОРМЫ
////////////////////////////////////////////////////////////////////////////////
Процедура ДействияФормыИнформация(Кнопка)
обЗаполнитьИнформациюПользователя(ЭтотОбъект,ЭтаФорма);
КонецПроцедуры
Процедура ДействияФормыПроводкиДтКт(Кнопка)
обОткрытьЖурналПроводок(Ссылка);
КонецПроцедуры
Процедура ДействияФормыФормаЗначенияПоУмолчанию(Кнопка)
обОткрытьФормуЗначенияПоУмолчанию(ЭтотОбъект,ЭтаФорма);
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ РЕКВИЗИТОВ ШАПКИ
////////////////////////////////////////////////////////////////////////////////
Процедура ОрганизацияПриИзменении(Элемент)
обПриИзмененииОрганизацииДокумента(ЭтотОбъект,ЭтаФорма);
КонецПроцедуры
Процедура СкладПриИзменении(Элемент)
МОЛ = Склад.ОсновнойМОЛ;
КонецПроцедуры
Процедура СкладНачалоВыбора(Элемент, СтандартнаяОбработка)
обСкладНачалоВыбора(ЭтотОбъект, ЭтаФорма, Элемент, СтандартнаяОбработка, Ложь, Ложь);
СкладПриИзменении(Элемент);
КонецПроцедуры
Процедура СкладОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
обПриВводеТекстаСклада(ЭтотОбъект, ЭтаФорма, Элемент, Значение, Текст);
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ РЕКВИЗИТОВ ТЧ Номенклатура
////////////////////////////////////////////////////////////////////////////////
Процедура НоменклатураВидМБППриИзменении(Элемент)
УстановитьДоступностьКолонок();
Если Элемент.Значение = Перечисления.ВидыМБП.Основной Тогда
ЭлементыФормы.Номенклатура.ТекущиеДанные.СрокИспользования = 0;
ЭлементыФормы.Номенклатура.ТекущиеДанные.СуммаАмортизацииМесяц = 0;
ИначеЕсли Элемент.Значение = Перечисления.ВидыМБП.Спецодежда Тогда
ЭлементыФормы.Номенклатура.ТекущиеДанные.СуммаАмортизацииМесяц = 0;
Иначе
ЭлементыФормы.Номенклатура.ТекущиеДанные.СрокИспользования = 0;
КонецЕсли;
КонецПроцедуры
Процедура НоменклатураСпособНачисленияАмортизацииПриИзменении(Элемент)
УстановитьДоступностьКолонок()
КонецПроцедуры
Процедура НоменклатураПриАктивизацииСтроки(Элемент)
ТекСтрока = Элемент.ТекущаяСтрока;
УстановитьДоступностьКолонок();
КонецПроцедуры
Процедура НоменклатураПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
обПриНачалеРедактированияСтрокиДокумента(ЭтаФорма, Элемент, НоваяСтрока, Копирование);
ТекСтрока = ЭлементыФормы.Номенклатура.ТекущиеДанные;
Если НоваяСтрока Тогда
Если Копирование Тогда
ТекСтрока.ПараметрыАмортизации = Справочники.ПараметрыАмортизацииТМЦ.ПустаяСсылка();
Иначе
ТекСтрока.ВидМБП = ВидМБП;
ТекСтрока.СпособНачисленияАмортизации = СпособНачисленияАмортизации;
Если ОбПустоеЗначение(ТекСтрока.НаправлениеАмортизации) Тогда
ТекСтрока.НаправлениеАмортизации = НаправлениеАмортизации;
КонецЕсли;
ТекСтрока.Склад = Склад;
ТекСтрока.МОЛ = МОЛ;
КонецЕсли;
ТекСтрока.Количество = 1;
КонецЕсли;
КонецПроцедуры
Процедура НоменклатураТМЦПриИзменении(Элемент)
ТекСтрока = ЭлементыФормы.Номенклатура.ТекущаяСтрока;
ТекСтрока.Артикул = ?(ПустаяСтрока(ТекСтрока.ТМЦ.Артикул),ТекСтрока.ТМЦ.Код,ТекСтрока.ТМЦ.Артикул);
ТекСтрока.ЕдиницаИзмерения = ТекСтрока.ТМЦ.ЕдиницаХраненияОстатков;
КонецПроцедуры
Процедура НоменклатураПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
ТекСтрока = ЭлементыФормы.Номенклатура.ТекущаяСтрока;
Если ТекСтрока.ВидМБП = Перечисления.ВидыМБП.Основной Тогда
ТекСтрока.СчетУчетаТМЦГруппа = ПланыСчетов.Основной.А10_19;
ИначеЕсли ТекСтрока.ВидМБП = Перечисления.ВидыМБП.ВременныеСооружения Тогда
ТекСтрока.СчетУчетаТМЦГруппа = ПланыСчетов.Основной.А10_80;
Иначе
ТекСтрока.СчетУчетаТМЦГруппа = ПланыСчетов.Основной.А10_11;
КонецЕсли;
Если Организация.ФлагУчетаМатериаловВЭксплуатацииПоОстаточнойСтоимости Тогда
ТекСтрока.СуммаИзноса = ТекСтрока.ПервоначальнаяСтоимость - ТекСтрока.Сумма;
Иначе
ТекСтрока.Сумма = ТекСтрока.ПервоначальнаяСтоимость - ТекСтрока.СуммаИзноса;
КонецЕсли;
КонецПроцедуры
Процедура НоменклатураТМЦНачалоВыбора(Элемент, СтандартнаяОбработка)
ТекСтрока = ЭлементыФормы.Номенклатура.ТекущаяСтрока;
СтандартнаяОбработка = Ложь;
ФормаНоменклатуры = Справочники.Номенклатура.ПолучитьФормуВыбора(,ЭтаФорма);
ФормаНоменклатуры.ЗакрыватьПриВыборе = Истина;
Если ПараметрыСеанса.ВестиУчетНоменклатурыПоНесколькимВидам Тогда
СписокТМЦ = обВернутьСписокТМЦПоВидуТМЦ(Перечисления.ВидыТМЦ.Материал);
ФормаНоменклатуры.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаНоменклатуры.Отбор.Ссылка.Значение = СписокТМЦ;
ФормаНоменклатуры.Отбор.Ссылка.Использование = Истина;
Иначе
ФормаНоменклатуры.Отбор.ВидТМЦ.Значение = Перечисления.ВидыТМЦ.Материал;
ФормаНоменклатуры.Отбор.ВидТМЦ.Использование = Истина;
КонецЕсли;
ФормаНоменклатуры.НачальноеЗначениеВыбора = Элемент.Значение;
ФормаНоменклатуры.Открыть();
КонецПроцедуры
Процедура НоменклатураПриПолученииДанных(Элемент, ОформленияСтрок)
обНоменклатураПриПолученииДанных(ЭтотОбъект, ЭтаФорма, Элемент, ОформленияСтрок);
КонецПроцедуры
Процедура НоменклатураПриАктивизацииЯчейки(Элемент)
обНоменклатураПриАктивизацииЯчейки(ЭтотОбъект, ЭтаФорма, Элемент);
КонецПроцедуры
Прошу о помощи! Если что-то не так, простите, только начинаю разбираться... где потребуется более подробно описать проблему, отпишите
спасибо