В силу специфики своей работы, иногда бывает необходимо чтобы страница по DNS имени открывалась не по тому IP по которому ресолвится DNS сервером. Ну например есть два сервера: dev и prod, и что-бы переключиться между ними можно поправить запись в файле host. Годами всё работало корректно, и тут вдруг неожиданно перестало. Ларчик открывается просто: Firefox с очередным обновлением стал включать сервис DNS over HTTPS по умолчанию. Отключив её, всё встало на свои места
Функция ПолучитьРодителя(СправочникСсылка)
Пока НЕ СправочникСсылка.Родитель.Пустая() Цикл
СправочникСсылка = СправочникСсылка.Родитель;
КонецЦикла;
Возврат СправочникСсылка;
КонецФункции
Давненько не трогал 7.7 вообще. Да так, что когда пришлось, понял что забыл практически всё. Итак краткая шпаргалка для тех кто вынужден был сделать временный «даунгрейд» 😉
Поиск процедур/функций в коде конфигурации осуществляется через меню «Конфигурация->Поиск во всех текстах»
Запросы можно писать через конструктор «Конструкторы->Запрос», при этом он разместится в позиции курсора, а далее его можно редактировать будет при запуске конструктора по имени
Обход запроса осуществляется по уровням группировки
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Обрабатывать НеПомеченныеНаУдаление;
|ПокДн = Справочник.ПоказанияСчетчиков.ПокДн;
|Владелец = Справочник.ПоказанияСчетчиков.Владелец;
|ТекущийЭлемент = Справочник.ПоказанияСчетчиков.ТекущийЭлемент;
|Код = Справочник.ПоказанияСчетчиков.Код;
|Группировка ТекущийЭлемент Упорядочить по ТекущийЭлемент.Код;
|Условие(Владелец = счтк);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
возврат 0;
КонецЕсли;
Пока Запрос.Группировка(1,сортировка) = 1 Цикл
Дата_Показания="";
если сортировка=-1 тогда
Дата_Показания=НормализоватьДату(Запрос.Код);
конецесли;
возврат Запрос.ПокДн;
КонецЦикла;
возврат 0;
4. Отличия в «макете» в 7.7 от 8.х: Вместо «Макет» — «Таблица», вместо «Имя» — «Секция»
5. Данные в «Тело» можно заносить например так:
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Расчеты");
Таб.ВывестиСекцию("Шапка");
МассивСальдо.ВыбратьСтроки();
Пока МассивСальдо.ПолучитьСтроку() = 1 Цикл
// Сообщить(Шаблон("[тз.НомерСтроки]. [тз.Товар] х [тз.Количество] ед."));
лс=МассивСальдо.ЛС;
начало=МассивСальдо.СальдоНачало;
начхол=МассивСальдо.ХолоднаяВода;
начот=МассивСальдо.Отопление;
начкан=МассивСальдо.Канализация;
сто=начхол+начот+начкан;
если сто=0 тогда сто=1;конецесли;
начхол_пр=100*начхол/сто;
начот_пр=100*начот/сто;
начкан_пр=100*начкан/сто;
оплачено=МассивСальдо.Оплачено;
конец=МассивСальдо.СальдоНачало+МассивСальдо.ХолоднаяВода+МассивСальдо.Отопление+МассивСальдо.Канализация-МассивСальдо.Оплачено;
распхол=окр(начхол_пр*конец/100,2);
распротоп=окр(начот_пр*конец/100,2);
раскан=окр(начкан_пр*конец/100,2);
Таб.ВывестиСекцию("Тушка");
КонецЦикла;
Таб.Опции(0,0,0,0);
Таб.ТолькоПросмотр(1);
Таб.Показать("Результат",);
6. Если реквизит периодический, то данные из него можно получить: