Функция ЭтоЧисло(Символ) Экспорт
Если (КодСимв(Символ)>=48) И (КодСимв(Символ)<=57) Тог
да
Возврат(1);
Иначе
Возврат(0);
КонецЕсли;
КонецФункции
//функция возвращает копейки
Функция гКопейки(Значение) Экспорт
Грн=Цел(Значение);
Коп=Значение-Грн;
Возврат(Коп
0);
КонецФункции
//функция возвращает сумму без скидки
Функция гСкидка(Сумма,Скидка) Экспорт
Возврат Сумма*(1-Скидка/100);
КонецФункции
//функция устанавливает новое значение реквизита документа или справочника и за
даёт вопрос, если новое значение не соответствует предыдущему
Функция гЗначение(Ко,Атрибут,Значение) Экспорт
Знач1=Ко.ПолучитьАтрибут(Атрибут);
Знач2=Значение;
//проверка
Если Не(ТипЗначенияСтр(Знач1)=ТипЗначенияСтр(Знач2)) Тог
да
//несоответствие типов
Возврат(0);
ИначеЕсли Не(ТипЗначенияСтр(Знач2)="Число") И (ПустоеЗначение(Знач2)=1) Тог
да
//пустое новое значение
Возврат(0);
КонецЕсли;
//реквизит
Если Мета
данные.Документ(Ко.Вид()).Выбран()=1 Тог
да
//документ
Если Мета
данные.Документ(Ко.Вид()).РеквизитШапки(Атрибут).Выбран()=1 Тог
да
Ж=Мета
данные.Документ(Ко.Вид()).РеквизитШапки(Атрибут);
Имя=Ж.Представление();
ИначеЕсли Мета
данные.Документ(Ко.Вид()).РеквизитТабличнойЧасти(Атрибут).Выбран()=1 Тог
да
Ж=Мета
данные.Документ(Ко.Вид()).РеквизитТабличнойЧасти(Атрибут);
Имя=Ж.Представление()+" (строка "+Ко.НомерСтроки+")";
Иначе
Ж=Мета
данные.ОбщийРеквизитДокумента(Атрибут);
Имя=Ж.Представление();
КонецЕсли;
ИначеЕсли Мета
данные.Справочник(Ко.Вид()).Выбран()=1 Тог
да
//справочник
Ж=Мета
данные.Справочник(Ко.Вид()).Реквизит(Атрибут);
Имя=Ж.Представление();
Если ПустаяСтрока(Имя)=1 Тог
да
Имя=Атрибут;
КонецЕсли;
КонецЕсли;
//форматирование
Если ТипЗначенияСтр(Знач2)="Строка" Тог
да
Знач1=СокрЛП(Знач1);
Знач2=СокрЛП(Знач2);
ИначеЕсли ТипЗначенияСтр(Знач2)="Число" Тог
да
Знач2=Окр(Знач2,Ж.Точность);
КонецЕсли;
//проверка
Если Знач1=Знач2 Тог
да
Возврат(0);
КонецЕсли;
//установка значения
Если ПустоеЗначение(Знач1)=0 Тог
да
Текст=
"Атрибут: "+Имя+"
|
|Старое значение: "+СимволТабуляции+Знач1+"
|Новое значение: "+СимволТабуляции+Знач2+"
|
|Установить новое значение?";
Если Вопрос(Текст,"Да+Нет")="Нет" Тог
да
Возврат(0)
КонецЕсли;
КонецЕсли;
//значение
Ко.УстановитьАтрибут(Атрибут,Знач2);
Возврат(1);
КонецФункции