helpf.pro
Регистрация
 0 
Распечатать

Функция устанавливает новое значение реквизита документа или справочника.

Код 1C v 7.x
  //функция устанавливает новое значение реквизита документа или справочника и задаёт вопрос, если новое значение не соответствует предыдущему
Функция гЗначение(Ко,Атрибут,Значение) Экспорт
Знач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);
КонецФункции
Разместил:   Версии: | 7.x |  Дата:   Прочитано: 12915
 0 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 52
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2) 0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей.
COM-подключение к базе 7.7 из .NET, .NET Core 2
Инсталяция: dotnet add package sabatex.V1C77 или добавить через NUGET пакет sabatex.V1C77. Добавить пространство имен: using sabatex.V1C77; пример использованя: ---C# static void Main(string args) { // создаем строку соединен
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.