V
V
Vadim Yagofarov2020-07-14 11:36:46
1C
Vadim Yagofarov, 2020-07-14 11:36:46

How to find what resets (erases) the value of the attribute in 1C?

Good afternoon! Here is the code

Функция ПолучитьАнкетуПоИмени(urlФормы)
  
  МассивОбязательныхПолей = Новый Массив();
  desc = "";
  title = "";
  //translit = "";
  Запрос = Новый Запрос;
    
  Запрос.Текст = "ВЫБРАТЬ
                 |	ВопросыШаблонаАнкеты.КодДляСортировки КАК КодДляСортировки,
                 |	ВопросыШаблонаАнкеты.Ссылка КАК link,
                 |	ВЫБОР
                 |		КОГДА ВопросыШаблонаАнкеты.ТипВопроса = ЗНАЧЕНИЕ(Перечисление.ТипыВопросовШаблонаАнкеты.Табличный)
                 |			ТОГДА ВопросыШаблонаАнкеты.JSON
                 |		ИНАЧЕ ВопросыШаблонаАнкеты.ЭлементарныйВопрос.JSON
                 |	КОНЕЦ КАК JSON,
                 |	ВопросыШаблонаАнкеты.Обязательный КАК required,
                 |	ВопросыШаблонаАнкеты.Транслит КАК translit,
                 |	ВопросыШаблонаАнкеты.Владелец.Заголовок КАК title,
                 |	ВопросыШаблонаАнкеты.Владелец.Вступление КАК decs
                 |ИЗ
                 |	Справочник.ВопросыШаблонаАнкеты КАК ВопросыШаблонаАнкеты
                 |ГДЕ
                 |	ВопросыШаблонаАнкеты.ЭтоГруппа = ЛОЖЬ
                 |	И ВопросыШаблонаАнкеты.Владелец.Ссылка В
                 |			(ВЫБРАТЬ
                 |				ФормированиеЧПУ.ШаблоныАнкет
                 |			ИЗ
                 |				РегистрСведений.ФормированиеЧПУ КАК ФормированиеЧПУ
                 |			ГДЕ
                 |				ФормированиеЧПУ.URL = &URL)
                 |
                 |УПОРЯДОЧИТЬ ПО
                 |	ВопросыШаблонаАнкеты.КодДляСортировки";
  
  Запрос.УстановитьПараметр("URL", urlФормы);
  
  РезультатЗапроса = Запрос.Выполнить().Выбрать();
  Пока РезультатЗапроса.Следующий() Цикл
    
    Если РезультатЗапроса.required Тогда
      МассивОбязательныхПолей.Добавить(РезультатЗапроса.translit);	
    КонецЕсли;
    
    Если РезультатЗапроса.title <> "" Тогда
      Возврат title = РезультатЗапроса.title;
    Иначе
      Возврат title = "";
    КонецЕсли;
    
    Если РезультатЗапроса.desc <> "" Тогда
      Возврат desc = РезультатЗапроса.desc;
    Иначе
      Возврат desc = "";
    КонецЕсли;
        
  КонецЦикла;
  
  МассивJSON = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("JSON");
  ВыходнаяСтрока = СтрСоединить(МассивJSON, ",");
  МассивJSONКакСтруктура = РаботаСФормами.JSONКакСтруктура(ВыходнаяСтрока);
  
  СтруктураФормы = Новый Структура();	
  СтруктураФормы.Вставить("title", title);
  СтруктураФормы.Вставить("description", desc);
  Если МассивОбязательныхПолей.Количество() > 0 Тогда
    СтруктураФормы.Вставить("required",МассивОбязательныхПолей);
  КонецЕсли;
  СтруктураФормы.Вставить("type","object");
  СтруктураФормы.Вставить("properties", МассивJSONКакСтруктура);

  СтруктураФормыJSON = РаботаСФормами.СтруктураКакJSON(СтруктураФормы);	
        
  Возврат СтруктураФормыJSON;
  
КонецФункции

Constantly after some operation, 2 attributes are reset to zero (CodeForSort and JSON in the Directory. Questions of the Questionnaire Template), i.e. what was written in them is erased. How to find what resets (erases) the value of the attribute in 1C?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
K
Konstantin Nagibovich, 2020-07-14
@nki

How to find what resets (erases) the value of the attribute in 1C?

I would suggest the most obvious way is to look under the debugger.

M
Mikhail E, 2020-07-14
@Mikhail_E

Well, the simplest thing is to look in the registration log who and when changes this directory (the user, session, date is written there. There is a selection by links. This will give at least a direction in which you need to understand ...

A
Alexander, 2020-07-14
@Dem0lisher

interesting code..
1. You understand that the string
Return title = "";
will return after calling the function not "", but true or false.
2. Here the "CodeForSort" is not changed anywhere. How did you decide that this is the same code?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question