1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 6
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе
Перем Reader, Url, Точки, HtmlTab, Строк, Р, НомСтроки, НомЯчеCOM-подключение к базе 7.7 из 8.2 1С 7 Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине.
Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)):
НаКлиенте
Процедура Загрузки()
ПутьКБазе=" D: ВашаБаза 1с77 " ;
Пользователь=Автоматическая установка ширины колонки табличного документа. 0 Процедура, которая " примерно" делает автоширину колонок (навроде, как если бы выделить все колонки и дважды щелкнуть мышкой по границе заголовка колонки). Привожу текст, работает неахти, но лучше чем ничего:
Процедура РасчетШириныКолонок(ТабличныйБитая ссылка, <Объект не найден>, Уникальный Идентификатор, GUID 76 Когда кто-то удаляет данные из базы без проверки ссылок на эти объекты, то везде где этот объект использовался появляется сообщение вида: Объект не найден (84:bf5600145e3710ab11dda4c605dbe824) .
https://helpf.pro/uploads/img/_1-46z7I4U7Ww.png
ВВыбор оптимального алгоритма для разбора строки в массив 0 Столкнулся с проблемой: ПолучитьСтрокуПоНомеру() медленно отрабатывает на входных данных 100 000 строк. Как сделать бытсрее?
// Пример Defender aka LINN
ВремяНачала = ТекущаяДата();
Сообщить(" Обработка начата: " + ВремяНачала);
ТЗ = Новый ТаПосмотреть все результаты поиска похожих
Создание списка всех видов расчетов 0 Для включения всех видов расчетов в произвольный список значений без использования перебора групп видов расчетов можно использовать функцию Шаблон().
//Функция присвоения значения
Функция ПолучениеВР(ВР,Объект)
ВР = Объект;
Возврат " " ;
КонецФуКак указать ссылку на вид расчета 0 ВР = ВидРасчета.НаРуки;
ВР = ВидРасчета.Премия;
ВР = ВидРасчета.ПолучитьАтрибут(" НаРуки" ); Как определить сумму "по окладу" текущего сотрудника 0 ПоОкладу = 0;
ЖЗ = СоздатьОбъект(" ЖурналРасчетов.Зарплата" );
ДатаНач = 01.01.2002;
ЖЗ. ВыбратьПериодПоОбъекту(ТекСотр, ДатаНач);
Пока ЖЗ.ПолучитьЗапись()=1 Цикл
Если ЖЗ.ВидРасч = ВидРасчета.ПоОкладу Тогда
ПоОкладу = ПоОкладу + ЖЗ.РезультатВхождение вида расчета в группу 0 Посчитаем все начисления текущего сотрудника за январь:
// 1-й вариант:
ВсегоНачислено = 0;
ЖЗ.ВыбратьЗаписиПоОбъекту (ТекСотр, ДатаНач, ДатаКон);
Пока ЖЗ.ПолучитьЗапись()=1 Цикл
Если ЖЗ.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления)=1 ТоПеребор всех видов расчета и видов расчета, входящих в группу 0 // Перебор всех видов расчета
Для Ном=1 По Метаданные.ВидРасчета() Цикл
кфгВР = Метаданные.ВидРасчета(Ном);
ВР = ВидРасчета.ПолучитьАтрибут(кфгВР.Идентификатор);
КонецЦикла;
// Перебор видов расчета, входящих в группу
Для Ном=1 По ГруппаРаПосмотреть все в категории Виды расчетов