#Область ОписаниеПеременных
&НаКлиенте
Перем ОбновитьИнтерфейс;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
СоставНабораКонстантФормы = ОбщегоНазначенияУТ.ПолучитьСтруктуруНабораКонстант(НаборКонстант);
ВнешниеРодительскиеКонстанты = НастройкиСистемыПовтИсп.ПолучитьСтруктуруРодительскихКонстант(СоставНабораКонстантФормы);
ВнешниеРодительскиеКонстанты.Вставить(Метаданные.Константы.ВестиУправленческийУчетОрганизаций.Имя);
ВнешниеРодительскиеКонстанты.Вставить(Метаданные.Константы.ИспользоватьВнеоборотныеАктивы2_4.Имя);
ВнешниеРодительскиеКонстанты.Вставить(Метаданные.Константы.ПартионныйУчетВерсии22.Имя);
ВнешниеРодительскиеКонстанты.Вставить(Метаданные.Константы.ИспользоватьУчетПрочихДоходовРасходовРегл.Имя);
РежимРаботы = Новый Структура;
РежимРаботы.Вставить("СоставНабораКонстантФормы", Новый ФиксированнаяСтруктура(СоставНабораКонстантФормы));
РежимРаботы.Вставить("ВнешниеРодительскиеКонстанты", Новый ФиксированнаяСтруктура(ВнешниеРодительскиеКонстанты));
РежимРаботы = Новый ФиксированнаяСтруктура(РежимРаботы);
НачалоВедениеРеглУчета = ?(ЗначениеЗаполнено(НаборКонстант.ДатаНачалаВеденияРеглУчета), 1, 0);
НачалоВедениеУУНаПланеСчетовХозрасчетный = ?(ЗначениеЗаполнено(НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный), 1, 0);
ДатаНачалаПризнанияДоходовНовымМетодом = НаборКонстант.ДатаНачалаПризнанияДоходовОтчетомОРозничныхПродажах;
ТаблицаФорматов = УправлениеПечатью.НастройкиФорматовСохраненияТабличногоДокумента();
Элементы.ФорматСохраненияРегистровУчета.СписокВыбора.ЗагрузитьЗначения(ТаблицаФорматов.ВыгрузитьКолонку("Ссылка"));
Элементы.ГруппаУчетПоНДД.Видимость = Ложь;
УстановитьДоступность();
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия <> "Запись_НаборКонстант" Тогда
Возврат;
КонецЕсли;
Если РежимРаботы.ВнешниеРодительскиеКонстанты.Свойство(Источник)
ИЛИ (ТипЗнч(Параметр) = Тип("Структура")
И ОбщегоНазначенияУТКлиентСервер.ПолучитьОбщиеКлючиСтруктур(
Параметр, РежимРаботы.ВнешниеРодительскиеКонстанты).Количество() > 0) Тогда
Прочитать();
УстановитьДоступность();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Если НаборКонстант.ИспользоватьРеглУчет
И НачалоВедениеРеглУчета = 1
И НЕ ЗначениеЗаполнено(НаборКонстант.ДатаНачалаВеденияРеглУчета) Тогда
ТекстСообщения = НСтр("ru = 'Укажите дату начала отражения операций в регламентированном учете'");
ОбщегоНазначенияКлиент.СообщитьПользователю(
ТекстСообщения, , "НаборКонстант.ДатаНачалаВеденияРеглУчета", , Отказ);
КонецЕсли;
Если НаборКонстант.ВестиУУНаПланеСчетовХозрасчетный
И НачалоВедениеУУНаПланеСчетовХозрасчетный = 1
И НЕ ЗначениеЗаполнено(НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный) Тогда
ТекстСообщения = НСтр("ru = 'Укажите дату начала ведения управленческого учета на едином плане счетов регламентированного учета.'");
ОбщегоНазначенияКлиент.СообщитьПользователю(
ТекстСообщения, , "НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный", , Отказ);
КонецЕсли;
Если НаборКонстант.ВестиУчетНаПланеСчетовХозрасчетныйВВалютеФинОтчетности
И НЕ ЗначениеЗаполнено(НаборКонстант.ВалютаФинОтчетности) Тогда
ТекстСообщения = НСтр("ru = 'Укажите валюту управленческой финансовой отчетности.'");
ОбщегоНазначенияКлиент.СообщитьПользователю(
ТекстСообщения, , "НаборКонстант.ВалютаФинОтчетности", , Отказ);
КонецЕсли;
Если НаборКонстант.ВестиУчетНаПланеСчетовХозрасчетныйВВалютеФинОтчетности
И НЕ ЗначениеЗаполнено(НаборКонстант.ИсточникСуммыДляПересчетаВВалютуФинОтчетности) Тогда
ТекстСообщения = НСтр("ru = 'Укажите источник для пересчета суммы в валюту управленческой финансовой отчетности.'");
ОбщегоНазначенияКлиент.СообщитьПользователю(
ТекстСообщения, , "НаборКонстант.ИсточникСуммыДляПересчетаВВалютуФинОтчетности", , Отказ);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ФорматСохраненияРегистровУчетаПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура НастройкаКолонтитулов(Команда)
ОткрытьФорму("ОбщаяФорма.НастройкаКолонтитулов", , ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ИспользоватьКонтролируемыеСделкиПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
Если НаборКонстант.ИспользоватьУведомленияОКонтролируемыхСделках Тогда
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаПослеИзмененияИспользоватьКонтролируемыеСделки", ЭтотОбъект);
ТекстВопроса = НСтр("ru = 'Рекомендуется выполнить обработку по заполнению границ контролируемости сделок.
|Выполнить обработку?'");
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не выполнять'"));
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Нет, НСтр("ru = 'Заполнение границ контролируемости'"));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УплачиваетсяТорговыйСборПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ИспользоватьРучнуюКорректировкуПроводокПоРеглУчетуПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ИспользоватьРегламентированныйУчетПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура НачалоВеденияРеглУчетаСНачальнойДатыПриИзменении(Элемент)
НаборКонстант.ДатаНачалаВеденияРеглУчета = Дата(1,1,1);
Подключаемый_ПриИзмененииРеквизита(Элементы.ДатаНачалаВеденияРеглУчета, Ложь);
Оповестить("ДатаНачалаВеденияРеглУчета_Изменение", НаборКонстант.ДатаНачалаВеденияРеглУчета, ЭтотОбъект);
УстановитьДоступность("НаборКонстант.ДатаНачалаВеденияРеглУчета");
КонецПроцедуры
&НаКлиенте
Процедура НачалоВеденияРеглУчетаСОпределеннойДатыПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элементы.ДатаНачалаВеденияРеглУчета, Ложь);
Оповестить("ДатаНачалаВеденияРеглУчета_Изменение", НаборКонстант.ДатаНачалаВеденияРеглУчета, ЭтотОбъект);
УстановитьДоступность("НаборКонстант.ДатаНачалаВеденияРеглУчета");
КонецПроцедуры
&НаКлиенте
Процедура ВестиУУНаПланеСчетовХозрасчетныйПриИзменении(Элемент)
Если НаборКонстант.ВестиУУНаПланеСчетовХозрасчетный
И ВедениеУУНаПланеСчетовТолькоСДаты() Тогда
НачалоВедениеУУНаПланеСчетовХозрасчетный = 1;
КонецЕсли;
Подключаемый_ПриИзмененииРеквизита(Элемент);
Если НачалоВедениеУУНаПланеСчетовХозрасчетный = 0 Тогда
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаПослеИзмененияДатыНачалаУУНаПланеСчетовХозрасчетный", ЭтотОбъект);
ТекстВопроса = НСтр("ru = 'Все документы будут возвращены к отражению в регламентированном учете.
|Выполнить обработку?'");
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не выполнять'"));
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Нет, НСтр("ru = 'Обработка данных'"));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НачалоВедениеУУНаПланеСчетовХозрасчетныйПриИзменении(Элемент)
НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный = Дата(1,1,1);
Подключаемый_ПриИзмененииРеквизита(Элементы.ДатаНачалаУУНаПланеСчетовХозрасчетный, Ложь);
Оповестить("ДатаНачалаУУНаПланеСчетовХозрасчетный_Изменение", НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный, ЭтотОбъект);
УстановитьДоступность("НаборКонстант.ВестиУУНаПланеСчетовХозрасчетный");
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаПослеИзмененияДатыНачалаУУНаПланеСчетовХозрасчетный", ЭтотОбъект);
ТекстВопроса = НСтр("ru = 'Все документы будут возвращены к отражению в регламентированном учете.
|Выполнить обработку?'");
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не выполнять'"));
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Нет, НСтр("ru = 'Обработка данных'"));
КонецПроцедуры
&НаКлиенте
Процедура НачалоВедениеУУНаПланеСчетовХозрасчетныйСДатыПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элементы.ДатаНачалаУУНаПланеСчетовХозрасчетный, Ложь);
Оповестить("ДатаНачалаУУНаПланеСчетовХозрасчетный_Изменение", НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный, ЭтотОбъект);
УстановитьДоступность("НаборКонстант.ВестиУУНаПланеСчетовХозрасчетный");
КонецПроцедуры
&НаКлиенте
Процедура ВестиУчетНаПланеСчетовХозрасчетныйВВалютеФинОтчетностиПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ВалютаФинОтчетностиПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ИсточникСуммыДляПересчетаВВалютуФинОтчетностиПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ИсточникСуммыДляПересчетаВВалютуФинОтчетностиОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура ДатаНачалаУУНаПланеСчетовХозрасчетныйНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормыВыбораПериода = Новый Структура("Значение, РежимВыбораПериода", НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный, "МЕСЯЦ");
ОписаниеОповещения = Новый ОписаниеОповещения("ДатаНачалаУУНаПланеСчетовХозрасчетныйЗавершение", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ВыборПериода",
ПараметрыФормыВыбораПериода,
ЭтотОбъект,
УникальныйИдентификатор,
,
,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ДатаНачалаВеденияРеглУчетаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормыВыбораПериода = Новый Структура("Значение, РежимВыбораПериода", НаборКонстант.ДатаНачалаВеденияРеглУчета, "МЕСЯЦ");
ОписаниеОповещения = Новый ОписаниеОповещения("ДатаНачалаВеденияРеглУчетаЗавершение", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ВыборПериода",
ПараметрыФормыВыбораПериода,
ЭтотОбъект,
УникальныйИдентификатор,
,
,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ОтражатьВРеглУчетеТолькоПроверенныеДокументыПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ДатаНачалаПризнанияДоходовНовымМетодомПриИзменении(Элемент)
НаборКонстант.ДатаНачалаПризнанияДоходовОтчетомОРозничныхПродажах = НачалоМесяца(НаборКонстант.ДатаНачалаПризнанияДоходовОтчетомОРозничныхПродажах);
Если ДатаНачалаПризнанияДоходовНовымМетодом > НаборКонстант.ДатаНачалаПризнанияДоходовОтчетомОРозничныхПродажах Тогда
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаИзменениеДатыНачалаПризнанияДоходовНовымМетодом", ЭтотОбъект);
ШаблонВопроса = НСтр("ru = 'У всех отчетов о розничных продажах с датой больше %1 будут добавлены движения в книгу учета доходов и расходов, а у всех приходов денежных средств из кассы удалены.
|Выполнить обработку?'");
ТекстВопроса = СтрШаблон(ШаблонВопроса, Формат(НаборКонстант.ДатаНачалаПризнанияДоходовОтчетомОРозничныхПродажах, "ДЛФ=D"));
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Отмена'"));
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Нет, НСтр("ru = 'Обработка данных'"));
Иначе
ДатаНачалаПризнанияДоходовНовымМетодом = НаборКонстант.ДатаНачалаПризнанияДоходовОтчетомОРозничныхПродажах;
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НеИспользоватьПроверкуЗаданийЗакрытияМесяцаВОтчетахРеглПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура НастройкаСчетовУчетаПроизводстваПоГруппамПродукцииПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ИспользоватьНастраиваемуюГруппировкуАктивовОбязательствПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ИспользоватьУчетПоНДДПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ТипОбъектаРаздельногоУчетаПоНДДПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ТипОбъектаРаздельногоУчетаПоНДДОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура ДатаНачалаУчетаПоНДДПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПроводкиВводаОстатковПоБУиНУ(Команда)
Отбор = Новый Структура;
Отбор.Вставить("КорСчет", ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.Вспомогательный"));
Отбор.Вставить("СуммаЗаполнена", Истина);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Отбор", Отбор);
ОткрытьФорму("РегистрБухгалтерии.Хозрасчетный.ФормаСписка", ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПроводкиВводаОстатковПоУУ(Команда)
Отбор = Новый Структура;
Отбор.Вставить("КорСчет", ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.Вспомогательный"));
Отбор.Вставить("СуммаУУЗаполнена", Истина);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Отбор", Отбор);
ОткрытьФорму("РегистрБухгалтерии.Хозрасчетный.ФормаСписка", ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СписокДокументовВводаНачальныхОстатковПоБУиНУ(Команда)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ОтборПоВидуУчета", "ОтражатьВБУиНУ");
ОткрытьФорму("Обработка.ЖурналДокументовВводаНачальныхОстатков.Форма.ФормаСписка", ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СписокДокументовВводаНачальныхОстатковПоУУ(Команда)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ОтборПоВидуУчета", "ОтражатьВУУ");
ОткрытьФорму("Обработка.ЖурналДокументовВводаНачальныхОстатков.Форма.ФормаСписка", ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СоздатьДокументыВводаНачальныхОстатковПоБУиНУ(Команда)
ДатаВвода = НаборКонстант.ДатаНачалаВеденияРеглУчета - 1;
ДопПараметры = Новый Структура;
ДопПараметры.Вставить("ОтражатьВБУиНУ", Истина);
ДопПараметры.Вставить("ОтражатьВУУ", Ложь);
ДопПараметры.Вставить("ДатаВвода", ДатаВвода);
ОбработчикОповещения = Новый ОписаниеОповещения("ОбработчикОповещенияВопросВводНачальныхОстатков", ЭтотОбъект, ДопПараметры);
ТекстВопроса = СтрШаблон(НСтр("ru = 'Сформировать документы ввода остатков по БУ и НУ на %1?'"), ДатаВвода);
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Сформировать'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не формировать'"));
ПоказатьВопрос(ОбработчикОповещения, ТекстВопроса, Кнопки,,, НСтр("ru = 'Ввод начальных остатков'"));
КонецПроцедуры
&НаКлиенте
Процедура СоздатьДокументыВводаНачальныхОстатковПоУУ(Команда)
ДатаВвода = НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный - 1;
ДопПараметры = Новый Структура;
ДопПараметры.Вставить("ОтражатьВБУиНУ", Ложь);
ДопПараметры.Вставить("ОтражатьВУУ", Истина);
ДопПараметры.Вставить("ДатаВвода", ДатаВвода);
ОбработчикОповещения = Новый ОписаниеОповещения("ОбработчикОповещенияВопросВводНачальныхОстатков", ЭтотОбъект, ДопПараметры);
ТекстВопроса = СтрШаблон(НСтр("ru = 'Сформировать документы ввода остатков по УУ на %1?'"), ДатаВвода);
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Сформировать'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не формировать'"));
ПоказатьВопрос(ОбработчикОповещения, ТекстВопроса, Кнопки,,, НСтр("ru = 'Ввод начальных остатков'"));
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Клиент
&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина)
КонстантаИмя = ПриИзмененииРеквизитаСервер(Элемент.Имя);
Если ОбновлятьИнтерфейс Тогда
ОбновитьИнтерфейс = Истина;
ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина);
КонецЕсли;
Если КонстантаИмя <> "" Тогда
Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьИнтерфейсПрограммы()
Если ОбновитьИнтерфейс = Истина Тогда
ОбновитьИнтерфейс = Ложь;
ОбщегоНазначенияКлиент.ОбновитьИнтерфейсПрограммы();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыбратьПериодНачалаВеденияРеглУчетаЗавершение(РезультатВыбора, ДопПараметры) Экспорт
Если РезультатВыбора = Неопределено Тогда
Возврат;
КонецЕсли;
НаборКонстант.ДатаНачалаВеденияРеглУчета = РезультатВыбора;
Подключаемый_ПриИзмененииРеквизита(Элементы.ДатаНачалаВеденияРеглУчета, Ложь);
Оповестить("ДатаНачалаВеденияРеглУчета_Изменение", НаборКонстант.ДатаНачалаВеденияРеглУчета, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбработчикОповещенияВопросВводНачальныхОстатков(РезультатВопроса, ДопПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
Результат = ЗапуститьВводНачальныхОстатков(УникальныйИдентификатор, ДопПараметры);
Если Результат.Статус = "Выполняется" Тогда
ПараметрыФормаДлительнойОперации = ПараметрыФормыДлительнойОперации();
ПараметрыФормаДлительнойОперации.АдресРезультата = Результат.АдресРезультата;
ПараметрыФормаДлительнойОперации.ИдентификаторЗадания = Результат.ИдентификаторЗадания;
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ИзменениеОбъектовЗавершено", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ДлительнаяОперация", ПараметрыФормаДлительнойОперации, ЭтотОбъект, , , , ОповещениеОЗакрытии);
Иначе
ИзменениеОбъектовЗавершено(Результат);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПараметрыФормыДлительнойОперации()
ПараметрыДлительнойОперации = Новый Структура;
ПараметрыДлительнойОперации.Вставить("ИдентификаторЗадания");
ПараметрыДлительнойОперации.Вставить("АдресРезультата");
ПараметрыДлительнойОперации.Вставить("ВыводитьОкноОжидания", Истина);
ПараметрыДлительнойОперации.Вставить("ВыводитьПрогрессВыполнения", Истина);
ПараметрыДлительнойОперации.Вставить("ВыводитьСообщения", Истина);
Возврат ПараметрыДлительнойОперации;
КонецФункции
&НаКлиенте
Процедура ИзменениеОбъектовЗавершено(Результат, ДополнительныеПараметры = Неопределено) Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Если ЗначениеЗаполнено(Результат.АдресРезультата) И Не Результат.Статус = "Ошибка" Тогда
СписокСозданныхДокументов = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
ТекстОповещения = НСтр("ru = 'Ввод начальных остатков...'");
Если СписокСозданныхДокументов.Количество() Тогда
ТекстПояснения = СтрШаблон(НСтр("ru = 'Создано %1 документов ввода начальных остатков по регламентированному учету.'"), СписокСозданныхДокументов.Количество());
Иначе
ТекстПояснения = НСтр("ru = 'Не удалось создать документы ввода начальных остатков по регламентированному учету.'");
КонецЕсли;
ПоказатьОповещениеПользователя(ТекстОповещения,, ТекстПояснения);
Иначе
ТекстОповещения = НСтр("ru = 'Ввод начальных остатков не выполнен'");
ТекстПояснения = НСтр("ru = 'Ввод начальных остатков завершен с ошибкой, по причине: %1'");
ТекстПояснения = СтрШаблон(ТекстПояснения, Результат.ПодробноеПредставлениеОшибки);
ПоказатьПредупреждение(, ТекстПояснения, , ТекстОповещения);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаИзменениеДатыНачалаПризнанияДоходовНовымМетодом(РезультатВопроса, ДопПараметры = Неопределено) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
Результат = ЗапуститьОбработкуУстановкиДатыНачалаПризнанияДоходовНовымМетодом(УникальныйИдентификатор, НаборКонстант.ДатаНачалаПризнанияДоходовОтчетомОРозничныхПродажах);
Если Результат.Статус = "Выполняется" Тогда
ПараметрыДлительнойОперации = Новый Структура;
ПараметрыДлительнойОперации.Вставить("ИдентификаторЗадания", Результат.ИдентификаторЗадания);
ПараметрыДлительнойОперации.Вставить("АдресРезультата", Результат.АдресРезультата);
ПараметрыДлительнойОперации.Вставить("ВыводитьОкноОжидания", Истина);
ПараметрыДлительнойОперации.Вставить("ВыводитьПрогрессВыполнения", Истина);
ПараметрыДлительнойОперации.Вставить("ВыводитьСообщения", Истина);
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработкаУстановкиДатыНачалаПризнанияДоходовНовымМетодомЗавершена", ЭтотОбъект, ДопПараметры);
ОткрытьФорму("ОбщаяФорма.ДлительнаяОперация", ПараметрыДлительнойОперации, ЭтотОбъект, , , , ОповещениеОЗакрытии);
Иначе
ОбработкаУстановкиДатыНачалаПризнанияДоходовНовымМетодомЗавершена(Результат, ДопПараметры);
КонецЕсли;
Иначе
НаборКонстант.ДатаНачалаПризнанияДоходовОтчетомОРозничныхПродажах = ДатаНачалаПризнанияДоходовНовымМетодом;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаУстановкиДатыНачалаПризнанияДоходовНовымМетодомЗавершена(Результат, ДопПараметры) Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Если ЗначениеЗаполнено(Результат.АдресРезультата)
И Не Результат.Статус = "Ошибка" Тогда
РезультатВыполнения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
ТекстОповещения = НСтр("ru = 'Обработка установки даты начала признания доходов новым методом'");
МассивТекстПояснения = Новый Массив;
Если РезультатВыполнения.ОбработаноПКО = 0 Тогда
МассивТекстПояснения.Добавить(НСтр("ru = 'Изменений в движениях приходах денежных средств из кассы не требуется'"));
Иначе
МассивТекстПояснения.Добавить(СтрШаблон(НСтр("ru = 'Очищены движения в книгу учета доходов и расходов у приходных кассовых ордеров: %1'"), РезультатВыполнения.ОбработаноПКО));
КонецЕсли;
Если РезультатВыполнения.ОбработаноОРП = 0 Тогда
МассивТекстПояснения.Добавить(НСтр("ru = 'Изменений в движениях отчетов о розничных продажах не требуется'"));
Иначе
МассивТекстПояснения.Добавить(СтрШаблон(НСтр("ru = 'Заполнены движения в книгу учета доходов и расходов у отчетов о розничных продажах: %1'"), РезультатВыполнения.ОбработаноОРП));
КонецЕсли;
ТекстПояснения = СтрСоединить(МассивТекстПояснения, Символы.ПС);
ПоказатьОповещениеПользователя(ТекстОповещения,, ТекстПояснения);
ДатаНачалаПризнанияДоходовНовымМетодом = НаборКонстант.ДатаНачалаПризнанияДоходовОтчетомОРозничныхПродажах;
Подключаемый_ПриИзмененииРеквизита(Элементы.ДатаНачалаПризнанияДоходовНовымМетодом);
Иначе
ПоказатьПредупреждение(,НСтр("ru = 'Обработка завершилась с ошибкой. Подробную информацию см. в журнале регистрации.'"),
, НСтр("ru = 'Обработка установки даты начала признания доходов новым методом'"));
НаборКонстант.ДатаНачалаПризнанияДоходовОтчетомОРозничныхПродажах = ДатаНачалаПризнанияДоходовНовымМетодом;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ВызовСервера
&НаСервере
Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента)
РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным;
КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным, Новый Структура);
УстановитьДоступность(РеквизитПутьКДанным);
ОбновитьПовторноИспользуемыеЗначения();
Возврат КонстантаИмя;
КонецФункции
&НаСервереБезКонтекста
Функция ЗапуститьВводНачальныхОстатков(УникальныйИдентификатор, ПараметрыЗапуска)
ВыполняемыйМетод = "ВводОстатковСервер.СформироватьДокументыВводаОстатковПоДаннымОперативногоУчета";
ОтражениеВУчетах = Новый Массив;
Если ПараметрыЗапуска.ОтражатьВБУиНУ Тогда
ОтражениеВУчетах.Добавить(НСтр("ru = 'БУ и НУ'"));
КонецЕсли;
Если ПараметрыЗапуска.ОтражатьВУУ Тогда
ОтражениеВУчетах.Добавить(НСтр("ru = 'УУ'"));
КонецЕсли;
ШаблонНаименования = НСтр("ru = 'Создание документов ввода начальных остатков по %1 на дату %2.
|Заполнение документов выполняется по данным оперативного учета.'");
НаименованиеЗадания = СтрШаблон(ШаблонНаименования, СтрСоединить(ОтражениеВУчетах, ","), ПараметрыЗапуска.ДатаВвода);
ПараметрыФоновогоЗадания = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыФоновогоЗадания.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыФоновогоЗадания.КлючФоновогоЗадания = "ВводНачальныхОстатков";
ПараметрыФоновогоЗадания.ОжидатьЗавершение = 1;
РезультатФоновогоЗадания = ДлительныеОперации.ВыполнитьВФоне(ВыполняемыйМетод, ПараметрыЗапуска, ПараметрыФоновогоЗадания);
Возврат РезультатФоновогоЗадания;
КонецФункции
&НаСервереБезКонтекста
Функция ЗапуститьОбработкуУстановкиДатыНачалаПризнанияДоходовНовымМетодом(УникальныйИдентификатор, ДатаНачалаПризнанияДоходовНовымМетодом)
ПараметрыФоновогоЗадания = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыФоновогоЗадания.НаименованиеФоновогоЗадания = НСтр("ru = 'Обработка установки даты начала признания доходов новым методом'");
ПараметрыФоновогоЗадания.КлючФоновогоЗадания = "ОбработкаУстановкиДатыНачалаПризнанияДоходовНовымМетодом";
ПараметрыФоновогоЗадания.ОжидатьЗавершение = 1;
ПараметрыЗапуска = Новый Структура;
ПараметрыЗапуска.Вставить("ДатаНачалаПризнанияДоходовОтчетомОРозничныхПродажах", ДатаНачалаПризнанияДоходовНовымМетодом);
РезультатФоновогоЗадания = ДлительныеОперации.ВыполнитьВФоне(
"УчетУСНПСНСервер.ОбработкаУстановкиДатыНачалаПризнанияДоходовНовымМетодом",
ПараметрыЗапуска,
ПараметрыФоновогоЗадания);
Возврат РезультатФоновогоЗадания;
КонецФункции
#КонецОбласти
#Область Сервер
&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным, Результат)
Если РеквизитПутьКДанным = "" Тогда
Возврат "";
КонецЕсли;
КонстантаИмя = "";
Если СтрНачинаетсяС(НРег(РеквизитПутьКДанным), НРег("НаборКонстант.")) Тогда
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
КонстантаИмя = ЧастиИмени[1];
Иначе
КонецЕсли;
Если КонстантаИмя <> "" Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Если НастройкиСистемыПовтИсп.ЕстьПодчиненныеКонстанты(КонстантаИмя, КонстантаЗначение) Тогда
Прочитать();
КонецЕсли;
КонецЕсли;
Возврат КонстантаИмя
КонецФункции
&НаСервере
Процедура УстановитьДоступность(РеквизитПутьКДанным = "")
ЕстьОтражениеДокументовВРеглУчете = ЕстьОтражениеДокументовВРеглУчете();
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьРеглУчет"
ИЛИ РеквизитПутьКДанным = "" Тогда
Элементы.ГруппаДатаНачалаВеденияРеглУчетаГоризонтальная.Доступность = НаборКонстант.ИспользоватьРеглУчет;
Элементы.ГруппаОтчетность.Доступность = НаборКонстант.ИспользоватьРеглУчет;
Элементы.ГруппаСервисныеФункции.Доступность = НаборКонстант.ИспользоватьРеглУчет;
Результат = ДоступенУУНаПланеСчетовХозрасчетный();
Элементы.ВестиУУНаПланеСчетовХозрасчетный.Доступность = Результат.Доступность;
Элементы.ГруппаВестиУУНаПланеСчетовХозрасчетныйЗависимости.Видимость = НЕ Результат.Доступность;
Элементы.КомментарийВестиУУНаПланеСчетовХозрасчетныйЗависимости.Заголовок = Результат.Комментарий;
Элементы.ГруппаВестиУчетНаПланеСчетовХозрасчетныйВВалютеФинОтчетности.Доступность = НаборКонстант.ИспользоватьРеглУчет;
ИспользоватьНастройкиСчетовУчетаПроизводства = НаборКонстант.ИспользоватьРеглУчет
И НаборКонстант.АналитическийУчетПоГруппамПродукции;
Элементы.НастройкаСчетовУчетаПроизводстваПоГруппамПродукции.Доступность = ИспользоватьНастройкиСчетовУчетаПроизводства;
Элементы.ГруппаКомментарийНастройкиСчетовПроизводства.Видимость = НЕ ИспользоватьНастройкиСчетовУчетаПроизводства;
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы.ИспользоватьРегламентированныйУчет, ЕстьОтражениеДокументовВРеглУчете);
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ДатаНачалаВеденияРеглУчета"
ИЛИ РеквизитПутьКДанным = "" Тогда
РеглУчетСДаты = (НачалоВедениеРеглУчета = 1);
Элементы.ДатаНачалаВеденияРеглУчета.Доступность = РеглУчетСДаты;
Элементы.СоздатьДокументыВводаНачальныхОстатков.Доступность = РеглУчетСДаты;
Элементы.СписокДокументовВводаНачальныхОстатков.Доступность = РеглУчетСДаты;
Элементы.ПроводкиВводаОстатковБУНУ.Доступность = РеглУчетСДаты;
Элементы.ДатаНачалаВеденияРеглУчета.АвтоОтметкаНезаполненного = РеглУчетСДаты;
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы.НачалоВеденияРеглУчетаСНачальнойДаты, ЕстьОтражениеДокументовВРеглУчете);
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы.НачалоВеденияРеглУчетаСОпределеннойДаты, ЕстьОтражениеДокументовВРеглУчете);
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы.ДатаНачалаВеденияРеглУчета, ЕстьОтражениеДокументовВРеглУчете);
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ВестиУУНаПланеСчетовХозрасчетный"
ИЛИ РеквизитПутьКДанным = "" Тогда
НачалоВедениеУУнаПланеСчетовХозрасчетныйСДаты = (НачалоВедениеУУнаПланеСчетовХозрасчетный = 1);
Элементы.ГруппаДатаНачалаВеденияУпрУчетаГоризонтальная.Доступность = НаборКонстант.ВестиУУНаПланеСчетовХозрасчетный;
Элементы.НачалоВедениеУУнаПланеСчетовХозрасчетный.Доступность = НЕ ВедениеУУНаПланеСчетовТолькоСДаты();
Элементы.ДатаНачалаУУНаПланеСчетовХозрасчетный.Доступность = НачалоВедениеУУнаПланеСчетовХозрасчетныйСДаты;
Элементы.ДатаНачалаУУНаПланеСчетовХозрасчетный.АвтоОтметкаНезаполненного = НачалоВедениеУУнаПланеСчетовХозрасчетныйСДаты;
Элементы.СформироватьДокументыВводаОстатковПоУУ.Доступность = НачалоВедениеУУнаПланеСчетовХозрасчетныйСДаты;
Элементы.СписокДокументовВводаНачальныхОстатковУУ.Доступность = НачалоВедениеУУнаПланеСчетовХозрасчетныйСДаты;
Элементы.ПроводкиВводаОстатковУУ.Доступность = НачалоВедениеУУнаПланеСчетовХозрасчетныйСДаты;
ВалютыУпрИРеглУчетаСовпадают = Константы.ВалютыУпрИРеглУчетаСовпадают.Получить();
Элементы.ГруппаИнформацияВалютыУУиРУОтличаются.Видимость =
НаборКонстант.ВестиУУНаПланеСчетовХозрасчетный И НЕ ВалютыУпрИРеглУчетаСовпадают;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьВнеоборотныеАктивы2_4"
ИЛИ РеквизитПутьКДанным = "НаборКонстант.ИспользоватьВнеоборотныеАктивы2_2"
ИЛИ РеквизитПутьКДанным = "НаборКонстант.ВестиУправленческийУчетОрганизаций"
ИЛИ РеквизитПутьКДанным = "" Тогда
Результат = ДоступенУУНаПланеСчетовХозрасчетный();
Элементы.ВестиУУНаПланеСчетовХозрасчетный.Доступность = Результат.Доступность;
Элементы.ГруппаВестиУУНаПланеСчетовХозрасчетныйЗависимости.Видимость = НЕ Результат.Доступность;
Элементы.КомментарийВестиУУНаПланеСчетовХозрасчетныйЗависимости.Заголовок = Результат.Комментарий;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ВестиУчетНаПланеСчетовХозрасчетныйВВалютеФинОтчетности"
ИЛИ РеквизитПутьКДанным = "" Тогда
Элементы.ИсточникСуммыДляПересчетаВВалютуФинОтчетности.Доступность = НаборКонстант.ВестиУчетНаПланеСчетовХозрасчетныйВВалютеФинОтчетности;
Элементы.ВалютаФинОтчетности.Доступность = НаборКонстант.ВестиУчетНаПланеСчетовХозрасчетныйВВалютеФинОтчетности;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИсточникСуммыДляПересчетаВВалютуФинОтчетности" Тогда
Элементы.ИсточникСуммыДляПересчетаВВалютуФинОтчетности.Доступность = НаборКонстант.ВестиУчетНаПланеСчетовХозрасчетныйВВалютеФинОтчетности;
Элементы.ВалютаФинОтчетности.Доступность = НаборКонстант.ВестиУчетНаПланеСчетовХозрасчетныйВВалютеФинОтчетности;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИсточникСуммыДляПересчетаВВалютуФинОтчетности"
ИЛИ РеквизитПутьКДанным = "НаборКонстант.ВестиУУНаПланеСчетовХозрасчетный"
ИЛИ РеквизитПутьКДанным = "" Тогда
ВыполняетсяПересчетВВалютуФОизУУ =
НаборКонстант.ВестиУчетНаПланеСчетовХозрасчетныйВВалютеФинОтчетности
И (НаборКонстант.ИсточникСуммыДляПересчетаВВалютуФинОтчетности = Перечисления.ИсточникиСуммыДляПересчетаВВалютуФинОтчетности.УУ);
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы.ВестиУУНаПланеСчетовХозрасчетный,
ВыполняетсяПересчетВВалютуФОизУУ И НаборКонстант.ВестиУУНаПланеСчетовХозрасчетный);
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьПроверкуФинансовыхДокументов"
ИЛИ РеквизитПутьКДанным = "" Тогда
ИспользоватьПроверкуДокументов = Константы.ИспользоватьПроверкуФинансовыхДокументов.Получить();
Элементы.ОтражатьВРеглУчетеТолькоПроверенныеДокументы.Доступность = ИспользоватьПроверкуДокументов;
Элементы.ГруппаКомментарийОтражатьВРеглУчетеТолькоПроверенныеДокументы.Видимость = НЕ ИспользоватьПроверкуДокументов;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьВнеоборотныеАктивы2_4"
ИЛИ РеквизитПутьКДанным = "НаборКонстант.ПартионныйУчетВерсии22"
ИЛИ РеквизитПутьКДанным = "НаборКонстант.ИспользоватьУчетПрочихДоходовРасходовРегл"
ИЛИ РеквизитПутьКДанным = "НаборКонстант.ВестиУправленческийУчетОрганизаций"
ИЛИ РеквизитПутьКДанным = "" Тогда
ДоступностьУчетаВНА24 = Новый ФиксированнаяСтруктура(ВнеоборотныеАктивы.УсловияПереходаНаУчет2_4());
ОпцияДоступна =
ДоступностьУчетаВНА24.ДоступенУчет
ИЛИ Константы.ИспользоватьВнеоборотныеАктивы2_4.Получить()
ИЛИ НаборКонстант.ИспользоватьРеглУчет;
Элементы.ИспользоватьРегламентированныйУчет.Доступность = ОпцияДоступна;
Элементы.ГруппаКомментарийИспользоватьРегламентированныйУчет.Видимость = НЕ ОпцияДоступна;
Если НЕ ОпцияДоступна Тогда
Элементы.КомментарийИспользоватьРегламентированныйУчет.Заголовок =
СтрШаблон(НСтр("ru = 'Для включения регламентированного учета необходимо:%1'"),
ДоступностьУчетаВНА24.УсловияВключенияУчет2_4);
КонецЕсли;
КонецЕсли;
ОбменДаннымиУТУП.УстановитьДоступностьНастроекУзлаИнформационнойБазы(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Функция ЕстьОтражениеДокументовВРеглУчете()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Регистр.Регистратор
|ИЗ
| РегистрСведений.ОтражениеДокументовВРеглУчете КАК Регистр
|";
Возврат НЕ Запрос.Выполнить().Пустой();
КонецФункции
&НаКлиенте
Процедура ДатаНачалаУУНаПланеСчетовХозрасчетныйЗавершение(РезультатВыбора, ДопПараметры) Экспорт
Если РезультатВыбора = Неопределено Тогда
Возврат;
КонецЕсли;
СписокДат = СписокДатДляПроверкиНачалаВеденияУУ();
Если РезультатВыбора < СписокДат[0].Значение Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(
СписокДат[0].Представление, , "НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный");
Возврат;
КонецЕсли;
НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный = РезультатВыбора;
Подключаемый_ПриИзмененииРеквизита(Элементы.ДатаНачалаУУНаПланеСчетовХозрасчетный, Ложь);
Оповестить("ДатаНачалаУУНаПланеСчетовХозрасчетныйЗавершение_Изменение", НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный, ЭтотОбъект);
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаПослеИзмененияДатыНачалаУУНаПланеСчетовХозрасчетный", ЭтотОбъект);
ШаблонВопроса = НСтр("ru = 'Все документы с датой отражения больше %1 будут возвращены к отражению в регламентированном учете,
|отражение документов ранее указанной даты по управленческому учету будет отменено.
|Выполнить обработку?'");
ТекстВопроса = СтрШаблон(ШаблонВопроса, Формат(НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный, "ДЛФ=D"));
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не выполнять'"));
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Нет, НСтр("ru = 'Обработка данных'"));
КонецПроцедуры
&НаКлиенте
Процедура ДатаНачалаВеденияРеглУчетаЗавершение(РезультатВыбора, ДопПараметры) Экспорт
Если РезультатВыбора = Неопределено Тогда
Возврат;
КонецЕсли;
Если НаборКонстант.ВестиУУНаПланеСчетовХозрасчетный
И РезультатВыбора > НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный Тогда
ШаблонСообщения = НСтр("ru = 'Управленческий учет на плане счетов регламентированного учета ведется с %1.
|Дата начала ведения регл. учета не может быть больше указанной даты.'");
ТекстСообщения = СтрШаблон(ШаблонСообщения, Формат(НаборКонстант.ДатаНачалаУУНаПланеСчетовХозрасчетный, "ДЛФ=D"));
ОбщегоНазначенияКлиент.СообщитьПользователю(
ТекстСообщения, , "НаборКонстант.ДатаНачалаВеденияРеглУчета");
Возврат;
КонецЕсли;
НаборКонстант.ДатаНачалаВеденияРеглУчета = РезультатВыбора;
Подключаемый_ПриИзмененииРеквизита(Элементы.ДатаНачалаВеденияРеглУчета, Ложь);
Оповестить("ДатаНачалаВеденияРеглУчета_Изменение", НаборКонстант.ДатаНачалаВеденияРеглУчета, ЭтотОбъект);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВедениеУУНаПланеСчетовТолькоСДаты()
Результат = Ложь;
Если Константы.ДатаНачалаВеденияРеглУчета.Получить() <> Дата(1,1,1) Тогда
Результат = Истина;
КонецЕсли;
Если Константы.ДатаНачалаВеденияУправленческогоУчетаОрганизаций.Получить() <> Дата(1,1,1) Тогда
Результат = Истина;
КонецЕсли;
Если РасчетСебестоимостиПовтИсп.ДатаПереходаНаПартионныйУчетВерсии22() <> Дата(1,1,1) Тогда
Результат = Истина;
КонецЕсли;
Если Константы.ИспользоватьВнеоборотныеАктивы2_4.Получить()
И ВнеоборотныеАктивыЛокализация.ДатаНачалаУчетаВнеоборотныхАктивов2_4() <> Дата(1,1,1) Тогда
Результат = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервереБезКонтекста
Функция СписокДатДляПроверкиНачалаВеденияУУ()
СписокДат = Новый СписокЗначений;
ДатаНачалаВеденияРеглУчета = Константы.ДатаНачалаВеденияРеглУчета.Получить();
СписокДат.Добавить(ДатаНачалаВеденияРеглУчета,
СтрШаблон(
НСтр("ru = 'Выбранная дата должна быть больше %1 (начало ведения регл. учета).'"),
Формат(ДатаНачалаВеденияРеглУчета, "ДЛФ=D")));
ДатаНачалаВеденияУправленческогоУчетаОрганизаций = Константы.ДатаНачалаВеденияУправленческогоУчетаОрганизаций.Получить();
СписокДат.Добавить(ДатаНачалаВеденияУправленческогоУчетаОрганизаций,
СтрШаблон(
НСтр("ru = 'Выбранная дата должна быть больше %1 (дата начала ведения упр. учета по правилам международного финансового учета)'"),
Формат(ДатаНачалаВеденияУправленческогоУчетаОрганизаций, "ДЛФ=D")));
ДатаПереходаНаПартионныйУчетВерсии22 = РасчетСебестоимостиПовтИсп.ДатаПереходаНаПартионныйУчетВерсии22();
СписокДат.Добавить(ДатаПереходаНаПартионныйУчетВерсии22,
СтрШаблон(
НСтр("ru = 'Выбранная дата должна быть больше %1 (дата перехода на партионный учет 2.2)'"),
Формат(ДатаПереходаНаПартионныйУчетВерсии22, "ДЛФ=D")));
Если Константы.ИспользоватьВнеоборотныеАктивы2_4.Получить() Тогда
ДатаНачалаУчетаВнеоборотныхАктивов2_4 = ВнеоборотныеАктивыЛокализация.ДатаНачалаУчетаВнеоборотныхАктивов2_4();
СписокДат.Добавить(ДатаНачалаУчетаВнеоборотныхАктивов2_4,
СтрШаблон(
НСтр("ru = 'Выбранная дата должна быть больше %1 (начало использования внеоборотных активов версии 2.4.)'"),
Формат(ДатаНачалаУчетаВнеоборотныхАктивов2_4, "ДЛФ=D")));
КонецЕсли;
СписокДат.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
Возврат СписокДат;
КонецФункции
&НаСервере
Функция ДоступенУУНаПланеСчетовХозрасчетный()
ИспользоватьВнеоборотныеАктивы2_4 = Константы.ИспользоватьВнеоборотныеАктивы2_4.Получить();
ИспользоватьВнеоборотныеАктивы2_2 = Константы.ИспользоватьВнеоборотныеАктивы2_2.Получить();
ИспользуетсяУчетВнеоборотныхАктивов = ИспользоватьВнеоборотныеАктивы2_4 ИЛИ ИспользоватьВнеоборотныеАктивы2_2;
ИспользоватьРеглУчет = НаборКонстант.ИспользоватьРеглУчет;
ИспользоватьУправленческийУчетОрганизаций = РасчетСебестоимостиПовтИсп.УправленческийУчетОрганизаций();
ДоступностьИспользования = ИспользоватьРеглУчет
И ИспользоватьУправленческийУчетОрганизаций
И (ИспользоватьВнеоборотныеАктивы2_4
ИЛИ НЕ ИспользуетсяУчетВнеоборотныхАктивов);
Комментарий = "";
Если НЕ ДоступностьИспользования Тогда
МассивПодстрок = Новый Массив;
МассивПодстрок.Добавить(НСтр("ru = 'Для включения управленческого учета на едином плане счетов необходимо'"));
Если НЕ ИспользоватьУправленческийУчетОрганизаций Тогда
МассивПодстрок.Добавить(НСтр("ru = 'использовать управленческий учет по правилам международного финансового учета (см раздел. ""НСИ и администрирование"" - ""Финансовый результат и контроллинг"")'"));
КонецЕсли;
Если ИспользуетсяУчетВнеоборотныхАктивов И НЕ ИспользоватьВнеоборотныеАктивы2_4 Тогда
МассивПодстрок.Добавить(НСтр("ru = 'не использовать учет внеоборотных активов или использовать учет версии 2.4 (см. раздел ""НСИ и администрирование"" - ""Внеоборотные активы"")'"));
КонецЕсли;
Если МассивПодстрок.Количество() > 2 Тогда
Разделитель = "
| - ";
Иначе
Разделитель = " ";
КонецЕсли;
Комментарий = СтрСоединить(МассивПодстрок, Разделитель);
КонецЕсли;
Результат = Новый Структура;
Результат.Вставить("Доступность", ДоступностьИспользования);
Результат.Вставить("Комментарий", Комментарий);
Возврат Результат;
КонецФункции
&НаСервереБезКонтекста
Функция ЗапуститьОбработкуУстановкиДатыНачалаУУНаПланеСчетовХозрасчетный(УникальныйИдентификатор)
ПараметрыФоновогоЗадания = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыФоновогоЗадания.НаименованиеФоновогоЗадания = НСтр("ru = 'Обработка установки даты начала ведения УУ на едином плане счетов'");
ПараметрыФоновогоЗадания.КлючФоновогоЗадания = "ОбработкаУстановкиДатыНачалаУУНаПланеСчетовХозрасчетный";
ПараметрыФоновогоЗадания.ОжидатьЗавершение = 1;
ПараметрыЗапуска = Новый Структура;
РезультатФоновогоЗадания = ДлительныеОперации.ВыполнитьВФоне(
"РеглУчетПроведениеСервер.ОбработкаУстановкиДатыНачалаУУНаПланеСчетовХозрасчетный",
ПараметрыЗапуска,
ПараметрыФоновогоЗадания);
Возврат РезультатФоновогоЗадания;
КонецФункции
&НаСервереБезКонтекста
Функция ЗапуститьОбработкуЗаполнениеГраницКонтролируемости(УникальныйИдентификатор)
ПараметрыФоновогоЗадания = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыФоновогоЗадания.НаименованиеФоновогоЗадания = НСтр("ru = 'Обработка заполнения границ контролируемости сделок'");
ПараметрыФоновогоЗадания.КлючФоновогоЗадания = "ОбработкаЗаполненияГраницКонтролируемости";
ПараметрыФоновогоЗадания.ОжидатьЗавершение = 1;
ПараметрыЗапуска = Новый Структура;
РезультатФоновогоЗадания = ДлительныеОперации.ВыполнитьВФоне(
"РегистрыСведений.ГраницыКонтролируемостиСделок.ОбработкаЗаполненияГраницКонтролируемости",
ПараметрыЗапуска,
ПараметрыФоновогоЗадания);
Возврат РезультатФоновогоЗадания;
КонецФункции
&НаКлиенте
Процедура ОбработкаУстановкиУстановкиДатыНачалаУУНаПланеСчетовХозрасчетныйЗавершена(Результат, ДопПараметры) Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Если ЗначениеЗаполнено(Результат.АдресРезультата)
И Не Результат.Статус = "Ошибка" Тогда
РезультатВыполнения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
ТекстОповещения = НСтр("ru = 'Обработка установки даты начала ведения УУ'");
Если РезультатВыполнения.ВозвращеноКОтражению <> 0
ИЛИ РезультатВыполнения.ОчищенаСуммаУУ <> 0 Тогда
МассивТекстПояснения = Новый Массив;
Если РезультатВыполнения.ВозвращеноКОтражению <> 0 Тогда
МассивТекстПояснения.Добавить(
СтрШаблон(НСтр("ru = 'Возвращено к отражению в регл. учете: %1'"), РезультатВыполнения.ВозвращеноКОтражению));
КонецЕсли;
Если РезультатВыполнения.ОчищенаСуммаУУ <> 0 Тогда
МассивТекстПояснения.Добавить(
СтрШаблон(НСтр("ru = 'Отменено отражение по УУ: %1'"), РезультатВыполнения.ОчищенаСуммаУУ));
КонецЕсли;
Разделитель = "
|";
ТекстПояснения = СтрСоединить(МассивТекстПояснения, Разделитель);
Иначе
ТекстПояснения = НСтр("ru = 'Изменений в отражении документов не требуется'");
КонецЕсли;
ПоказатьОповещениеПользователя(ТекстОповещения,, ТекстПояснения);
Иначе
ПоказатьПредупреждение(,
НСтр("ru = 'Обработка завершилась с ошибкой. Подробную информацию см. в журнале регистрации.'"),
,
НСтр("ru = 'Обработка установки даты начала ведения УУ'"));
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаПослеИзмененияДатыНачалаУУНаПланеСчетовХозрасчетный(РезультатВопроса, ДопПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
Результат = ЗапуститьОбработкуУстановкиДатыНачалаУУНаПланеСчетовХозрасчетный(УникальныйИдентификатор);
Если Результат.Статус = "Выполняется" Тогда
ПараметрыФормаДлительнойОперации = ПараметрыФормыДлительнойОперации();
ПараметрыФормаДлительнойОперации.АдресРезультата = Результат.АдресРезультата;
ПараметрыФормаДлительнойОперации.ИдентификаторЗадания = Результат.ИдентификаторЗадания;
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработкаУстановкиУстановкиДатыНачалаУУНаПланеСчетовХозрасчетныйЗавершена", ЭтотОбъект, ДопПараметры);
ОткрытьФорму("ОбщаяФорма.ДлительнаяОперация", ПараметрыФормаДлительнойОперации, ЭтотОбъект, , , , ОповещениеОЗакрытии);
Иначе
ОбработкаУстановкиУстановкиДатыНачалаУУНаПланеСчетовХозрасчетныйЗавершена(Результат, ДопПараметры);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаПослеИзмененияИспользоватьКонтролируемыеСделки(РезультатВопроса, ДопПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
ЗапуститьОбработкуЗаполнениеГраницКонтролируемости(УникальныйИдентификатор);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти