Получить синоним отчета 1с

Как получить синоним реквизита?

Я
   gerthog

10.03.15 — 14:31

Есть задача, проверка заполнения реквизитов по условию. Реквизиты на техническом английском, а синонимы по русски и нужно, что бы если реквизит(например «X_GZT») не заполнен, тогда сообщить пользователю, что не заполнен реквизит «СинонимРеквизита». Гугл пока ничего подходящего не сказал, мб тут подскажут?

   aka AMIGO

1 — 10.03.15 — 14:32

какая конфа? релиз?

   zak555

2 — 10.03.15 — 14:33

Метаданные ?

   Vladal

3 — 10.03.15 — 14:33

Правильно ли я понимаю, что синоним реквизита не заполнен в дереве метаданных?

Тогда по метаданным в цикле и проверять реквизит.

Если НЕ ЗначениеЗаполнено(Реквизит.Синоним) Тогда

    // Ошибочка вышла

КонецЕсли;

   Веселый молочник

4 — 10.03.15 — 14:34

никак

   aka AMIGO

5 — 10.03.15 — 14:35

(4) почему «Никак»?

   Веселый молочник

6 — 10.03.15 — 14:36

(5) потому что штатными средствами в режиме предприятия никак

   Vladal

7 — 10.03.15 — 14:37

проверь и поправь в своей конфе:

    МетаданныеДокумента = Источник.Метаданные();

    
    // Проверка по реквизитам шапки

    Для Каждого РеквДок из МетаданныеДокумента.Реквизиты Цикл

        Сообщить(РеквДок.Синоним);

    КонецЦикла;

    
    // Проверка по табличным частям

    Для каждого ТабЧасть Из МетаданныеДокумента.ТабличныеЧасти Цикл

        Для каждого КолонкаТЧ Из ТабЧасть.Реквизиты Цикл

            Сообщить(КолонкаТЧ.Синоним);

        КонецЦикла;

    КонецЦикла;

Я грубо вырезал свою обработку использования помеченных на удаление элементов справочников.

(5) и (6) Потому что ты этого не знаешь. А средства штатные. Код — выше.

   aka AMIGO

8 — 10.03.15 — 14:38

(6) так в (3) и предложено нештатное :)

а штатно — только смотреть в конфигураторе дерево метаданных :)

   aka AMIGO

9 — 10.03.15 — 14:39

(7) понятно :)

   Vladal

10 — 10.03.15 — 14:39

(8) Почему нештатное? Внешние компоненты, VBS, WSH — нештатное. А нативный код в 1С — штатное.

   Vladal

11 — 10.03.15 — 14:40

+(7) Весь код такой (может, кому пригодится)

    МетаданныеДокумента = Источник.Метаданные();

    
    // Проверка по реквизитам шапки

    Для Каждого РеквДок из МетаданныеДокумента.Реквизиты Цикл

        Если ВидОбъектаПоСсылке(Источник[РеквДок.Имя]) = «Справочник» Тогда

            Если ЗначениеЗаполнено(Источник[РеквДок.Имя])

                И Источник[РеквДок.Имя].ПометкаУдаления Тогда

                ОбщегоНазначения.СообщитьОбОшибке(«Нельзя использовать помеченный на удаление элемент!

                |Реквизит шапки » + РеквДок.Синоним + » — » + Источник[РеквДок.Имя]);

            КонецЕсли;

        КонецЕсли;

    КонецЦикла;

    
    // Проверка по табличным частям

    Для каждого ТабЧасть Из МетаданныеДокумента.ТабличныеЧасти Цикл

        Для каждого СтрокаТЧ Из Источник[ТабЧасть.Имя] Цикл

            Для каждого КолонкаТЧ Из ТабЧасть.Реквизиты Цикл

                Если ВидОбъектаПоСсылке(СтрокаТЧ[КолонкаТЧ.Имя]) = «Справочник» Тогда

                    Если ЗначениеЗаполнено(СтрокаТЧ[КолонкаТЧ.Имя])

                        И СтрокаТЧ[КолонкаТЧ.Имя].ПометкаУдаления Тогда

                        ОбщегоНазначения.СообщитьОбОшибке(«Нельзя использовать помеченный на удаление элемент!

                        |Табличная часть » + ТабЧасть.Синоним

                        + «, строка » + СтрокаТЧ.НомерСтроки

                        + «, колонка » + КолонкаТЧ.Синоним

                        + » — » + СтрокаТЧ[КолонкаТЧ.Имя], Отказ);

                    КонецЕсли;

                КонецЕсли;

            КонецЦикла;

        КонецЦикла;

    КонецЦикла;

   aka AMIGO

12 — 10.03.15 — 14:40

(10) т.е. я вношу изменения в модуль конфы, и получаю штатное решение?

   DirecTwiX

13 — 10.03.15 — 14:49

(12) Так обработки же есть

   Vladal

14 — 10.03.15 — 14:50

(12) Внешней обработкой.

Что есть штатное и нештатное?

Что есть штатное для типовой?

Что есть нештатное для типовой?

Что находится в папках Extforms на диске ИТС?

   Timon1405

15 — 10.03.15 — 14:51

Телепатирую: у ТС есть некий объект Деталь1, у которого есть реквизит Деталь1.X_GZT, у которого синоним, например «Ширина детали» и, если при загрузке извне она оказалась пустой, то сообщать нужно «у Детали1 не заполнена Ширина детали»

   Vladal

16 — 10.03.15 — 14:52

(12) Вот получить Exif-информацию из фоток (размер, выдержка, GPS-координты. модель фотоаппарата, дата и время снимка и т.д.) средствами 1С без внешних компонент — явно нештатное, ибо приходилось задействовать vbs.

А прочиттать синоним метаданых — вполне себе штатный метод, описан в синтакс-помощнике.

   Vladal

17 — 10.03.15 — 14:53

(15) Хороший вариант.

   gerthog

18 — 10.03.15 — 14:56

(1) Конфа — Управление Мед. Центром

(2) Что метаданные?

(3) Нет, синоним в дереве метаданных заполнен. Например реквизит «X_TVP» его синоним: «ТВП». Программно проверяю заполнен ли реквизит «X_TVP», если нет, то нужно вывести сообщение пользователю «Не заполнен реквизит «ТВП»», но как узнать синоним реквизита не могу нагуглить.

(7) Спасибо, сейчас попробую

   b_ru

19 — 10.03.15 — 14:57

>>Реквизиты на техническом английском

Я бы рекомендовал эвтаназию для автора решения.

   gerthog

20 — 10.03.15 — 15:00

(19) Не знаешь для чего и почему так сделано, а критикуешь — глупо

   Vladal

21 — 10.03.15 — 15:05

(18) Ну вот как раз это и есть синоним:

ОбщегоНазначения.СообщитьОбОшибке(«Нельзя использовать помеченный на удаление элемент!

|Реквизит шапки » + РеквДок.Синоним + » — » + Источник[РеквДок.Имя]);

РеквДок.Синоним — синоним реквизита, как его привыкли видеть пользователи на экране.

   aka AMIGO

22 — 10.03.15 — 15:13

(16) я понял, спасибо! :)

  

gerthog

23 — 10.03.15 — 15:21

(21) Пробую сейчас по Вашему примеру. К метаданным можно обращаться только НаСервере, да?

Синонимы объектов 1с

Синонимы в 1с имеются практически у всех объектов. Синоним объекта конфигурации назначается для пользователя. Именно пользователь конфигурации работает с объектом ориентируясь на его синоним. Соответственно он должен быть назначен исходя из назначения объекта. Также необходимо учесть функции выполняемые объектом.

что такое синоним объекта 1с

Синоним объекта должен быть определен так, чтобы осмысленно, лаконично описывать объект. Заполняется обязательно.

Данное требование продиктовано тем, что синонимы непосредственно участвуют в формировании пользовательского интерфейса (отображаются в формах, отчетах, командном интерфейсе и т.д.) и поэтому должны корректно и одинаково во всех местах пользовательского интерфейса идентифицировать ту сущность, к которой они относятся. Помимо объектов метаданных, требование распостраняется также и на реквизиты объектов метаданных, табличные части, реквизиты табличных частей, измерения регистров, ресурсы и другие объекты конфигурации, у которых имеется синоним.

Синоним объекта 1с справочник

Объект конфигурации Справочник обладает свойством синоним. Оно задается на вкладке Основные

Синонимы 1с
Синоним объекта справочник 1с

Синоним объекта 1с перечисление

Объект конфигурации Перечисление обладает свойством синоним. Оно задается на вкладке Основные

Синонимы 1с
Синоним объекта перечисление

Синонимы других объектов 1с

Другие объекты конфигурации 1с также обладают свойством Синоним. Кроме того расположение свойства Синоним то же самое.

Обработка нахождения отчетов в 1с по известному синониму

Объекты конфигураций 1с имеют свойства Наименование и Синоним. Синоним предназначен для пользователя информационной базы и именно его увидит пользователь при работе. Синонимы объектов 1с могут не совпадать с наименованием. Такая ситуация часто возникает с объектом отчет потому, что отчету регулярно переделываются по требованию пользователя. Обработка нахождения синонимов отчетов в 1с призвана находить объект отчет по известному синониму.

Конфигурации 1с:Предприятие, как известно, запускаются в 2-х режимах:

  1. Предприятие
  2. Конфигуратор

Пользователь в режиме Предприятие видит объекты и их синонимы. Часто имя и синоним объекта не совпадают. Найти объект по его синониму, не такая простая задача. Объекты отчеты часто имеют несколько различных редакций. Соответственно поиск конкурентной редакции отчета может занять продолжительное время.

Создана обработка для нахождения объекта отчет по синониму.

Синонимы объектов 1с
Внешний вид обработки

Обработки нахождения отчетов в 1с имеет следующий код:

Синонимы 1с
Код показывающий имя Отчетов и его синоним 1с

Ссылка на архив: http://ithelpyou.ru/wp-content/uploads/2021/02/ПоискСинонимовОтчетов.zip

Обработка нахождения отчета по синониму

Внешняя обработка нахождения отчета по синониму. Синоним вводится в текстовое поле. Код очень похож на описанный ранее.

Результат выполнения обработки:

Синонимы 1с

Поиск отчета по синониму 1с

Файл внешней обработки:http://ithelpyou.ru/wp-content/uploads/2022/07/ПоискСинонимовОтчетов2.zip

Формирование синонима переменной из идентификатора

16.05.2017

Функция формирует синоним переменной из идентификатора, как это делает платформа 1С8.

Функция формирует синоним переменной из идентификатора, как это делает платформа 1С8.
Используется при визуализации таблицы значений, давая читабельные для пользователей названия колонок:

  • «СуммаБезНДС» => «Сумма без НДС»,
  • «СуммаЗадолженностиКонтрагента» => «Сумма задолженности контрагента»,
  • «СинонимПеременной» => «Синоним переменной».

Для 7.7 переделывается легко.

// Формирует синоним переменной.
// Пример: на входе "ИмяПеременнойАБВГ", на выходе "Имя переменной АБВГ"
//
// Параметры
// ИмяРеквизита - Строка. Имя переменной, имя колонки таблицы
//
// Возвращаемое значение:
// Строка - Представление переменной
//
Функция СформироватьСиноним(ИмяРеквизита)

    Перем Синоним, ъ, Символ, ПредСимвол, СледСимвол, Прописная, ПредПрописная, СледПрописная, ДлинаСтроки;

Синоним = ВРег(Сред(ИмяРеквизита, 1, 1));
    ДлинаСтроки = СтрДлина(ИмяРеквизита);
Для ъ=2 По ДлинаСтроки Цикл
       Символ = Сред(ИмяРеквизита, ъ, 1);
        ПредСимвол = Сред(ИмяРеквизита, ъ-1, 1);
СледСимвол = Сред(ИмяРеквизита, ъ+1, 1);
Прописная = Символ = ВРег(Символ);
ПредПрописная = ПредСимвол = ВРег(ПредСимвол);
СледПрописная = СледСимвол = ВРег(СледСимвол);

// Варианты:
Если НЕ ПредПрописная И Прописная Тогда
Синоним = Синоним + " " + Символ;
ИначеЕсли Прописная И НЕ СледПрописная Тогда
Синоним = Синоним + " " + Символ;
 Иначе
           Синоним = Синоним + Символ;
       Конецесли;
КонецЦикла;

    Возврат Синоним;

КонецФункции // СформироватьСиноним()

Я когда-то писал для двух языков свою конфу, нормально работает НСтр()
Но для данных я использовал несколько реквизитов и google переводчик

Добавлено через 3 минуты
Конфа делалась для совместного использования Серийско-Российской компанией.

Так вот в Сирии арабский язык и они совсем не знают английский, было принято решение вести «основную» информацию в двух языках.

Если пользователь создает справочник на арабском (там кстати написание справо на лево) гугл переводит в отдельный реквизит на русский, и НАШИ уже видят только русский переведенный текст.
Аналогично при вводе и на русском.

А вот для интерфейсов мне давали переводчика)))

Добавлено через 4 минуты

Цитата
Сообщение от turboq
Посмотреть сообщение

Получить сразу 2 синонима значения

polax, 2 СИНОНИМА одного значения!
Отлично отработает через НСтр()

Универсальные функции для модуля дополнительных внешних отчетов (1С 8.3, управляемые формы).

Вариант № 1

Функция СведенияОВнешнейОбработке() ЭкспортИмяОтчета = ЭтотОбъект.Метаданные().Имя;
   
Синоним = ЭтотОбъект.Метаданные().Синоним;
   
Синоним = ?(ЗначениеЗаполнено(Синоним), Синоним, ИмяОтчета);РегистрационныеДанные = Новый Структура;
   
РегистрационныеДанные.Вставить(«Вид», «ДополнительныйОтчет»);
   
РегистрационныеДанные.Вставить(«Наименование», Синоним);
   
РегистрационныеДанные.Вставить(«Версия», «1.1»);
   
РегистрационныеДанные.Вставить(«БезопасныйРежим», Истина);
   
РегистрационныеДанные.Вставить(«Информация», «Отчет » + Синоним);ТаблицаКоманд = ПолучитьТаблицуКоманд();ДобавитьКоманду(ТаблицаКоманд, Синоним, «СформироватьОтчет», «ОткрытиеФормы», Истина);РегистрационныеДанные.Вставить(«Команды», ТаблицаКоманд);

    Возврат

РегистрационныеДанные;

КонецФункции

Функция

ПолучитьТаблицуКоманд()Команды = Новый ТаблицаЗначений;
   
Команды.Колонки.Добавить(«Представление», Новый ОписаниеТипов(«Строка»));
   
Команды.Колонки.Добавить(«Идентификатор», Новый ОписаниеТипов(«Строка»));
   
Команды.Колонки.Добавить(«Использование», Новый ОписаниеТипов(«Строка»));
   
Команды.Колонки.Добавить(«ПоказыватьОповещение», Новый ОписаниеТипов(«Булево»));
   
Команды.Колонки.Добавить(«Модификатор», Новый ОписаниеТипов(«Строка»));

    Возврат

Команды;

КонецФункции

Процедура

ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование = «ОткрытиеФормы», ПоказыватьОповещение = Ложь, Модификатор = «ПечатьMXL»)НоваяКоманда = ТаблицаКоманд.Добавить();
   
НоваяКоманда.Представление = Представление;
   
НоваяКоманда.Идентификатор = Идентификатор;
   
НоваяКоманда.Использование = Использование;
   
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
   
НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры

Вариант № 2

// Возвращает сведения о внешней обработке.
//
// Возвращаемое значение:
// Структура - Подробнее см. ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке().
//
Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
	
	ПараметрыЭтойОбработки = ПолучитьПараметрыЭтойОбработки(Ложь);
	
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Информация = ПараметрыЭтойОбработки.Комментарий
	+ ?(ЗначениеЗаполнено(ПараметрыЭтойОбработки.Комментарий), Символы.ПС, "")
	+ "Дата создания: 01.01.2020." + Символы.ПС
	+ "Дата последнего редактирования: 01.02.2020.";
	ПараметрыРегистрации.Версия = "1.0.0.1";
	ПараметрыРегистрации.БезопасныйРежим = Истина; // отключаем безопасный режим только при необходимости
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = ПараметрыЭтойОбработки.Синоним + " (настройки)";
	НоваяКоманда.Идентификатор = ПараметрыЭтойОбработки.Имя + "_Настройка";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = ПараметрыЭтойОбработки.Синоним + " (регламентное задание)";
	НоваяКоманда.Идентификатор = ПараметрыЭтойОбработки.Имя + "_РегламентноеЗадание";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

Функция ПолучитьПараметрыЭтойОбработки(ВызыватьИсключение = Истина) Экспорт
	
	ИмяОбработки = ЭтотОбъект.Метаданные().Имя;
	СинонимОбработки = ЭтотОбъект.Метаданные().Синоним;
	КомментарийОбработки = ЭтотОбъект.Метаданные().Комментарий;
	
	Ссылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоРеквизиту("ИмяОбъекта", ИмяОбработки);
	Если Ссылка.Пустая() Тогда
		Если ВызыватьИсключение Тогда
			ВызватьИсключение "Данная обработка не зарегистрирована в справочнике внешних обработок!";
		КонецЕсли;
	КонецЕсли;
	
	ПараметрыЭтойОбработки = Новый Структура;
	ПараметрыЭтойОбработки.Вставить("Ссылка", Ссылка);
	ПараметрыЭтойОбработки.Вставить("Имя", ИмяОбработки);
	ПараметрыЭтойОбработки.Вставить("Синоним", ?(ЗначениеЗаполнено(СинонимОбработки), СинонимОбработки, ИмяОбработки));
	ПараметрыЭтойОбработки.Вставить("Комментарий", КомментарийОбработки);
	
	Возврат ПараметрыЭтойОбработки;
	
КонецФункции

Понравилась статья? Поделить с друзьями:
  • Получить синоним объекта 1с
  • Получить синоним значения перечисления
  • Получить силы синоним
  • Получить решение синоним
  • Получить релакс синоним