СБиС news №46 от 08.06.01
Импорт связанных документов
В версии 1.9 появилась возможность импортировать связи не
только с документами основаниями, но и с документами следствиями.
Например, есть два реестра документов: накладные и платежки.
Часть платежек ссылается на накладные, и часть накладных ссылается на платежки.
В версии 1.8 при экспорте и дальнейшем импорте этих
документов связи с основаниями устанавливались только для документов того
реестра, который импортировался
последним, а остальные связи терялись.
В версии 1.9 при экспорте документов экспортируются связи не
только с основаниями, но и со следствиями. При дальнейшем импорте документы
реестра, который импортируется первым (накладные), не установят связей с
основаниями (их еще нет), а документы из реестра, который импортируется позже,
установят связи с накладными, причём, как с основаниями или как со следствиями.
Итак, связи успешно импортируются независимо от порядка
импорта документов.
Для такого
импорта/экспорта файл «sbis.io» обязательно должен содержать фрагмент «Связка1», аналогичный фрагменту «Связка2»:
+Связка1
Дата
Номер
Сумма
N п/п
Флаги
Вид связи
Комментарий
Связка2>Номер:DNUM
Связка2>Дата:DDATE
Связка2>Тема:DTHEME
Связка2>Тип документа:DTYPE
Связка2>Группа нумерации:DGRNUM
Сергей Макаров (smak@tensor.ru)
И снова новое в правах
В версии 1.9 появилась возможность поменять пароль у
пользователя без ввода старого. Прежде всего, эту возможность оценят, конечно
же, администраторы комплекса СБиС++ на предприятиях. Теперь, если незадачливый
пользователь забудет пароль, администратору достаточно открыть список
пользователей, найти нужного, нажать <F3>, <Alt+F10> и в появившемся локальном
меню окна выбрать команду «Очистить пароль». Так же это очень
пригодится, если администратор системы решит сменить пароль у пользователя
принудительно.
А ещё появились отчёты, позволяющие зафиксировать в печатном
виде практически всю настройку прав доступа в системе. Отчеты строятся из списка
пользователей и списка групп пользователей.
Павел Пряда (mag@tensor.ru)
Alt+F1 в расчётных листках
Для облегчения разбора ситуаций типа – «а откуда взялась эта
цифра в расчётном листке?» в версии 1.9 сделана отработка <Alt+F1> на строке расчётного листка.
По этой команде:
> для табелей
показывается соответствующая должность;
> для
постоянных – исходное постоянное н/у с карточки сотрудника;
> для
приказов, нарядов, ведомостей – исходный документ;
> для
начислений/удержаний, рассчитываемых для всех – вид начисления/удержания;
>
для сохранённых по «СохранитьНУ» - тот документ, из
которого сохранялось.
Дмитрий Новиков (demon@tensor.ru)
О «пропажах» в «Зарплате 1.9»
Не стало переменных «НеоблМин» и «НеоблМин12».
Вместо них теперь нужно писать:
НеоблМин(МесРасчета) и НеоблМин12(МесРасчета)
Не стало переменной «Отдел». Вместо неё теперь нужно
писать:
НазваниеРаздела("ФИО")
Дмитрий Новиков (demon@tensor.ru)
А знаете ли Вы, что…
…чтобы отсортировать строки
расчётной ведомости задачи «Зарплата» по табельному номеру сотрудника,
достаточно в отчёте в разделе описания переменных написать такую строку:
.Сортировать(Лицо,"ТабНомер");
…чтобы разбить строку (например,
ФИО) по символам можно воспользоваться такой конструкцией:
объект Символы;
Разбить(ФИО,"",Символы);
Тут ключевой момент – пустая строка в качестве второго
параметра функции «Разбить». После выполнения вышеприведённого фрагмента в
массиве «Символы» окажется строка, разбитая посимвольно, например:
Сообщить(Символы[3]);
выведет третий символ строки.
…а чтобы получить первые три
символа строки можно написать так:
Разбить(ФИО,"",Символ1,Символ2,Символ3);
Дмитрий Новиков (demon@tensor.ru)
Функция «Заменить»
Для работы со строками в версии 1.9 была добавлена функция
«Заменить», позволяющая заменить в строке все вхождения указанной подстроки на
другую подстроку.
Синтаксис
Заменить("Строка","Старая","Новая");
Параметры
Строка
– исходная строка, в которой будет производиться замена. Обратите внимание, что
непосредственно сама эта строка изменяться не будет – результирующая строка с
произведённой заменой возвращается функцией.
Старая
– подстрока, которая будет заменяться.
Новая
– подстрока, на которую будет заменяться старая подстрока.
Возвращаемое значение
Результирующая строка с заменённой старой подстрокой на
новую.
Примеры использования
Проставить в адресе слово «город» вместо сокращения:
Адр = Заменить(Адрес,"г.","город ");
Заменить запятые в адресе на два пробела:
Адр = Заменить(Адрес,","," ");
Дмитрий Новиков (demon@tensor.ru)
Копирование объектов – новое в функции «Объект»
При работе с объектам в большинстве правил операций Вы на
самом деле работаете со ссылками на эти объекты. Чтобы пояснить эту мысль,
давайте рассмотрим такой пример:
объект Доки;
перем Н = 0;
ДляВсех(Оснований)
Доки[Н++] = Связь;
Отладить();
Можете посмотреть по «Отладить» – все элементы массива
«Доки» будут ссылаться на пустой документ. Это потому что присваивая объект
«Связь» вы реально не копировали объект, а просто создавали ещё одну
ссылку на объект.
Вот чтобы скопировать объект, сделали функцию «Объект»,
принимающую копируемый объект. То есть вот такой фрагмент:
объект Доки;
перем Н = 0;
ДляВсех(Оснований)
Доки[Н++] = Объект(Связь);
Отладить();
…сделает, что и хотелось – на выходе имеем массив «Доки» со
всеми документами-основаниями.
Только пользуйтесь этой функцией аккуратненько – поскольку
создаётся новый объект можно занять всю оперативную память своего компьютера.
Опять же это гораздо дольше по времени исполнения, чем просто взять ссылку на
объект.
Ну и в заключение, дам-таки формальное описание функции.
Синтаксис
Объект(О);
Параметры
О –
имя копируемого объекта.
Возвращаемое значение
Новый объект, полностью повторяющий переданный в качестве
параметра.
Дмитрий Новиков (demon@tensor.ru)
Функция «Выборка»
Функция позволяет получить объект-запись не от таблицы, как
функция «Объект(НазваниеТаблицы)», а от выборки. Потребоваться она может в
достаточно сложных и редких случаях. Надеюсь со временем появятся примеры её
использования, а пока же просто констатируем наличие такой функции.
Синтаксис
Выборка("Название");
Параметры
Название
– название выборки, которая должна быть описана в ресурсах.
Возвращаемое значение
Ссылка на сконструированный по выборке объект.
Примеры использования
Чтобы создать объект-запись реестра «Входящие платежи»,
пишем так:
оДокумент = Выборка("Входящие платежи");
Подробнее, надеюсь рассказать в следующем выпуске СБиС news на примере работы с
системой «клиент-банк».
Дмитрий Новиков (demon@tensor.ru)
<<< Предыдущий выпуск | Архив выпусков | Следующий выпуск >>>
|