среда, 30 октября 2013 г.

Отладка внешних печатных форм

Разработано на Инфостарте. "Фундамент"

Внешняя печатная форма – это внешняя обработка, у которой должны быть:
1. Реквизит "СсылкаНаОбъект" типа ДокументСсылка неопределенного или определенного (если форма предназначена для одного документа) вида;
2. В модуле обработки должна быть функция Печать() с ключевым словом "Экспорт" (результатом выполнения функции должен быть табличный документ или значение "Неопределено").
3. Если в функцию Печать() мы копируем алгоритм заполнения печатной формы из документа, то все параметры типа ЭтотОбъект.Ссылка мы должны заменить на СсылкаНаОбъект
4. Если нужна авторегистрация формы, то создаётся макет с идентификатором "Параметры_Авторегистрации" в первом столбце которого в каждой строчке можно указать объекты, для которых предназначена печатная форма  (Документы.ЗаказПокупателя).

Т.к. отладку обычным способом произвести нельзя предложен такой вариант:

  1. Добавляем форму.
  2. При создании формы НЕ НАЖИМАТЬ сразу ГОТОВО, нажимать ДАЛЕЕ! Иначе не будет возможности автоматически создать ПолеВвода для выбора значения реквизита СсылкаНаОбъект.
  3. В обработчик нажатия кнопки "Выполнить" добавим вызов функции Печать() с выводом на экран результата.
Процедура КнопкаВыполнитьНажатие(Кнопка)
     Печать().Показать();
КонецПроцедуры

Теперь просто открыв файл внешней печатной формы и выбрав в поле "Ссылка на объект" нужный документ мы нажимаем кнопку Выполнить и печатаем/отлаживаем!!!

И, что самое важное/приятное- именно эту форму (без малейших изменений) можно сразу добавлять в доп. формы, а при необходимости- извлекать и опять отлаживать!

среда, 9 октября 2013 г.

Поле объекта недоступно для записи

Ключевое слово тут- "объект". Как правило возникает при попытке записать в ссылку!
Еще часто возникает при использовании ТекущаяСтрока вместо ТекущиеДанные

вторник, 1 октября 2013 г.

Номенклатура контрагента (поставщика)

Являет собой регистр сведений.

Из документации. Регистр предназначен для хранения списков номенклатуры поставщиков, возможных для поставки.
Данные регистра используются:
- в помощнике заполнения календарного плана закупок обработки «Календарный план закупок» для определения доступных номенклатурных позиций поставщиков ;
- в форме выбора справочника номенклатура, при выборе номенклатуры из документов «Поступление товаров, услуг», «Заказ поставщику» и прочие приходных документов;
- в обработке подбора номенклатуры, вызываемой из торговых документов.

Его можно заполнять (и использовать) двумя способами.
1. Из "карточки товара".
Закладка "Номенклатура поставщика" становится видимой, когда на за­кладке Дополнительно  заполнен реквизит Основной поставщик. Позволяет привязать товар к определенному поставщику и его номенклатуре (для автоматизации ввода по штрих-коду, заполнения цены в документе Поступление по цене из документа Установка цен номенклатуры контрагентов).

2. Из формы выбора номенклатуры документов поступления.
Для выбора данные регистра доступны из соответствующих документов, после выбора контрагента и установки в меню Действия (формы выбора) флага Номенклатура контрагента.

ВЫВОД. В подобном виде мало функционально. Более того. При включении в настройках пользователя (или в РС Настройки пользователей)- Другие настройки- Открытие списка выбора номенклатуры по умолчанию с отбором по поставщику в документах поставщиков будет открываться номенклатура поставщика, что не удобно!

НО.. В настоящее время (сентябрь 2013) в документах поставщика (Счет и Заказ) нет возможности отразить длину номенклатуры. В данном регистре это возможно! При необходимости- попробовать!

среда, 18 сентября 2013 г.

Вести партионный учет по сериям в УТ 10.3

Суть выбора этого флага- ведение или нет в РН ПартииТоваровНаСкладах учета по измерению СерияНоменклатуры. Это, в свою очередь, влияет на учет валовой прибыли (чем дешевле куплена серия- тем выше прибыль). Т.о. если менеджеры получают бонус от прибыли этот флаг ставить не желательно.
Флаг "Вести партионный учет по сериям" можно установить/ снять и после начала ведения учета по данной номенклатуре!

четверг, 27 июня 2013 г.

Рисование печатных форм....

1. Касаемо вертикальных именованных областей уже готового макета, в которые надо добавить ячейки.
Пусть это лоховство, но лучший путь- раздвинуть ячейки внутри области (не смотря на форматирование!!!!) и уже сюда добавлять информацию.
2. Если стандартные печатные формы не желательно сохранять (к примеру много внешних печатных форм), то в функции модуля ПолучитьСтруктуруПечатныхФорм() комментируем соответствующую строку СтруктураМакетов.Вставить()

четверг, 13 июня 2013 г.

Группировка (Сгруппировать) и Итоги в запросе

Вроде и нет ничего проще,а с четким определением проблема.
Итак.

  Сгруппировать(группировка)- свернуть записи в группу по групповым полям (полям с одинаковым значением).
  Пример. Нам необходимо узнать общее количество товаров на определенном складе (...всего 999 тонн..). В регистр записывается каждое движение и даже элементарный запрос из двух полей (Склад и Количество) сформирует выборку из множества записей с одинаковым значением поля Склад и разными значениями поля Количество.
Свернуть (сгруппировать) остатки по полю Склад- это получить общее количество товара на этом складе.
  Отсюда вытекает необходимость (для нашего примера, но вообщем не обязательно) вычисления агрегатных функций (производят одиночное значение для определенной группы полей таблицы) по групповому полю (в терминах конструктора запросов- Суммируемое поле).
  В нашем примере- групповое поле Склад, а агрегатную функцию вычислим по полю Количество- получим ОБЩЕЕ КОЛИЧЕСТВО всех товаров на складе.
  Т.к. настолько простые запросы очень редки, то во всех иных случаях при применении Группировки, группироваться будут все поля запроса (за исключением Суммируемых) и  выборка будет сокращаться (сворачиваться) только на те записи, у которых все групповые поля одинаковы (одинаковый склад, одинаковый товар, одинаковый размер товара- эти записи свернуться, если хоть что-то разное- нет).

Итоги (т.н. общие)- дополнительные строки в результате запроса, содержащие итоги  по заданным полям и группировкам (т.н. промежуточные итоги).
Общие итоги- строка в результате запроса со значением итогов по всем записям.

Итоги по группировкам- значения агрегатных функций по групповым полям(полям с одинаковым значением).

Отличия запроса с группировками (СГРУППИРОВАТЬ ПО) от запроса с итогами по группировкам.
В первом случае в результат запроса попадут только итоговые строки. В примере групповое поле- номенклатура:

Во втором- итоги и исходные записи. Причина- в определении (итоги не "сворачивают" данные, а добавляют строки)!В примере групповое поле- номенклатура:





Важно! В запросе нет необходимости пользоваться и группировкой и итогами! Все зависит от того, что нам нужно...

Порядок группировок в запросе с итогами по группировкам имеет важное значение, т.к. итоги рассчитываются по порядку.

Итоги по иерархии. Если групповое (группировочное) поле является ссылкой на справочник, то для расчета итогов по группам справочника (или родительским элементам, если справочник без групп) необходимо указать ключевое слово ИЕРАРХИЯ. В этом случае в результат будут добавлены записи с итогами для уровней иерархии справочника.

Важно! В языке запросов допускается совместное использование различных итогов в одном запросе (общих, по группировкам и иерархических).

Синтаксис работы с итогами в выборке из результата запроса

Метод ТипЗаписи()
Пример:
Если Выборка.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоГруппировке Тогда

         Продолжить;
КонецЕсли;



Описание:
Получает тип текущей записи выборки.

Возвращаемое значение:
Тип: ТипЗаписиЗапроса

Описание:
Содержит типы записей выборки результатов запроса.

Значения
ДетальнаяЗапись
Детальная (конечная) запись результата запроса.
ИтогПоГруппировке
Итоговая запись по группировке запроса.
ИтогПоИерархии
Итоговая запись по иерархии запроса.
ОбщийИтог
Общая итоговая запись запроса.

Применение.
В примере- если очередная строка выборки запроса имеет тип ИтогПоГруппировке то передать управление в начало цикла (пропустить эту строку).