@GIRUPC
Веб-программист

Как найти что обнуляет(стирает) значение реквизита в 1С?

Добрый день! Вот код
Функция ПолучитьАнкетуПоИмени(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;
	
КонецФункции

Постоянно после какой-то операции обнуляются 2 реквизита(КодДляСортировки и JSON в Справочник.ВопросыШаблонаАнкет), т.е. то что в них записывалось стирается.Как найти что обнуляет(стирает) значение реквизита в 1С?
  • Вопрос задан
  • 621 просмотр
Пригласить эксперта
Ответы на вопрос 3
nki
@nki
bezkart.ru готовая система лояльности
Как найти что обнуляет(стирает) значение реквизита в 1С?

Я бы предложил самый очевидный способ - посмотреть под отладчиком.
Ответ написан
Комментировать
Mikhail_E
@Mikhail_E
1С, SQL
Ну самое простое - посмотреть в журнале регистрации, кто и и когда изменяет этот справочник (там пишется пользователь , сеанс, дата. Есть отбор по ссылкам. Это даст хотя бы направление в которое нужно разбираться ...
Ответ написан
@Dem0lisher
интересный код..

1. Вы же понимаете, что строка
Возврат title = "";
вернет после вызова функции не "", а истина или ложь.
2. Тут нигде не менятеся "КодДляСортировки". С чего вы решили, что это тот самый код?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы