Сторно-записи, «прикрывающие» фактический период действия вводимой записи с более поздним периодом регистрации, могут быть сформированы вручную стандартными методами формирования записей регистра расчета. В этом случае разработчик должен самостоятельно предусмотреть алгоритм, по которому будут сформированы сторно-записи, исходя из первоначального набора записей. Это достаточно сложный путь, предполагающий самостоятельный анализ взаимодействия периодов действия конкурирующих записей.
Вместо формирования собственных алгоритмов можно воспользоваться методом ПолучитьДополнение() объекта РегистрРасчетаНаборЗаписей. Суть его состоит в том, что система самостоятельно анализирует возможные конфликты формируемого набора записей с записями, имеющими более ранний период регистрации. Если обнаруживается пересечение периодов действия с конкурирующими записями, на каждое такое пересечение система предложит сформировать сторно-запись, которая позволит вводимому набору записей сохранить фактический период действия. При этом система укажет, по каким видам расчета необходимо ввести сторно-записи и какой период действия они должны иметь.
Метод ПолучитьДополнение() применяется к набору записей регистра расчета, поддерживающего период действия, и не требует указания пара- метров. Данный метод возвращает значение типа ТаблицаЗначений, в котором содержатся все необходимые данные для формирования сторно-записей. Таблица включает значение всех полей записей, для которых должны быть введены сторно-записи (кроме полей Регистратор и НомерСтроки, которые не нужны для формирования сторно-записей), а также дополнительные поля – период регистрации сторно-записи и даты начала и окончания периода действия сторно-записи.
В приведенном примере для набора записей, состоящего из одной записи о больничном, метод ПолучитьДополнение() вернет таблицу следующего вида:
Период регистрации Вид расчета Период действия … Период регистрации сторно Период действия начало сторно Период действия конец сторно
01.03.2010 Дежурство 01.03.2010 01.04.2010 15.03.2010 22.03.2010
Полученная таблица позволяет ввести необходимые сторно-записи без дополнительных вычислений. Ниже приведен текст модуля, в котором используется метод ПолучитьДополнение() и формируются сторно-записи в регистре расчета:
;
Таким образом, сторно-записи имеют те же значения полей, что и исходные записи, за исключением периода регистрации и периода действия. Сторно-записи отличаются от обычных записей значением Истина в предопределенном поле Сторно.
В процессе работы пользователей, зачастую возникает необходимость создать задачу другому пользователю ИБ и проконтролировать ее выполнение.
К примеру, существует следующая задача:
Автоматизируемая компания занимается торговлей оборудованием. Специфика отгрузки оборудования заключается в том, что в основном она сопровождается оказанием услуг по монтажу закупленного оборудования. Исходя из этого, при оформлении заказа покупателя необходимо кроме ответственного за данный заказ указывать ответственного сотрудника по монтажу (в случае если это услуга не предусмотрена, реквизит не виден).
Если услуга по монтажу оборудования предусмотрена, то автоматически должно сформироваться два напоминания (события):
- Для ответственного менеджера на дату и время напоминания
- Для сотрудника ответственного за монтаж за сутки до напоминания ответственному менеджеру.
Когда срабатывает напоминание у ответственного менеджера, он должен видеть отработано ли напоминание сотрудника по монтажу оборудования.
Сформировать отчет, показывающий состояние согласования (когда сотрудник, ответственный за монтаж отработал напоминание) по незакрытым заказам покупателей (в случае оказание услуги по монтажу).
Решим ее следующим способом:
Создаем три реквизита документа Заказ покупателя: М_Монтаж (булево), М_Монтажник (Справочник пользователи) и М_ДатаМонтажа. Размещаем их на форме. Для того что бы сами реквизиты и их надписи были не видимы добавим процедуру:
При открытии формы документа тоже надо проверять можно ли отображать на форме новые реквизиты. Процедура УстановитьВидимость() вызывается из процедуры ПриОткрытии(). Именно здесь продублируем код процедуры М_МонтажПриИзменении(Элемент). Существуют, конечно, варианты. Например, можно управление видимостью организовать только в процедуре УстановитьВидимость() а в МонтажПриИзменении() обращаться к ней, или в процедуре УстановитьВидимость() вызывать МонтажПриИзменении(), однако, в первом варианте при каждом изменении значения реквизита «М_Монтаж» будет происходить установка видимости всех реквизитов в форме, что негативно скажется на производительности. Второй вариант не совсем корректен с точки зрения логики расположения программного кода, по этому сделаем наш код слегка избыточным, но зато логичным и не замедляющим работу программы.
При проведении документа следует создавать Задачу пользователя с взведенным флагом «Напоминание» и установленной датой напоминания. Лучше всего располагать создание задач после проверки на корректность заполнения всех полей документов (ведь документ может не провестись, а задачи создадутся)
Создавать задачи лучше с помощью немного доработанной процедуры РаботаСДиалогами.ПроверитьЗадачиПоОбъекту(Ссылка);
Во-первых, она проверит, есть ли введенные на основании этого документа задачи, и если обнаружит их, выдаст диалоговое окно пользователю с предложением не создавать новые. Этим мы исключим вероятность создания большого числа напоминаний при перепроведении документа. В самой функции ПроверитьЗадачиПоОбъекту() напишем:
Обратите внимание на реквизит «Инициатор» двух создаваемых нами задач. В форме списка задач существует возможность переключаться в режим просмотра заданий выданных текущим пользователем. Именно с помощью такого определения инициатора выполняется условие задачи: «В окошке напоминания менеджера должно быть видно, отработано ли событие монтажником»
Отчет в задании совсем не сложный, правда, могут возникнуть сомнения какой заказ считать закрытым. Как известно, заказ покупателя делает два движения. Одно по регистру «Заказы покупателя» где в разрезе номенклатуры, ведется учет по отгруженным товарам, второе по регистру «Расчеты с контрагентами» и здесь контролируется оплата по заказу. Думаю, что закрытым можно считать заказ, которого нет в остатках ни по одному, ни по второму регистру. Соединив их полным соединением, а так же присоединив таблицу Задач пользователя, получим отчет по незакрытым заказам пользователя. Автор: Максим Нечистяк
Многие, кто еще не касался СКД или касался поверхностно, высказывают - СКД сырая приблуда, на которой можно рисовать простенькие отчеты, типа вывода на печать справочника номенклатуры!
Так вот, на самом деле СКД очень мощный и гибкий инструмент, позволяющий на несколько минут создать хороший и многофункциональный отчет!
Этим примером я хочу Вам это показать!
Цель:
Необходимо для проверки сдаваемой отчетности создать в ЗУПе отчет, выводящий по Организации Налогооблагаемые базы: ОБЩАЯ, БАЗА ПФР, БАЗА ФОМС, БАЗА ФСС, БАЗА ФСС от НС, БАЗА не облагаемая и Скидка.
В отчете Нужна разбивка по месяцам, Видам Дохода, Видам расчета входящих в выше указанный Вид дохода,
Сумму представленную по Виду расчета, необходимо развернуть по ФизЛицу с указанием документа начисления!
Создание:
И так начнем:
1. Создаем отчет и Открываем Схему Компоновки Данных
2. В Наборах Данных -> Добавляем Набор данных - Запрос
Создаем не сложный запрос, собирающий доходы с регистра накопления СтраховыеВзносыСведенияОДоходах и по условиям распределяющий суммы в разные базы:
Закладка - Набор данных:
3. Так как у нас только один набор данных, закладку Связи Наборов Данных пропускаем.
Вычисляемые поля, тоже нам не нужны - пропускаем.
4. Для расчета итогов по группировкам на закладке Ресурсы добавляем:
5. В запросе я использовал Параметры, теперь на Закладке Параметры их нужно указать:
6. Закладки Макет и Вложенные Запросы пропускаем, переходим на Закладку Настройки
В верхней части формы необходимо указать выводимые данные отчета - воспользуемся Конструктором Настроек..
Далее комментировать не буду, смотрите по картинкам:
После нажатия на ОК получаем:
7. При формировании отчет будет выводить группировку месяц как дату 01.01.2010, сделаем же ее вида Январь 2010
Для этого в нижней части перейдем на Закладку Условное оформление и добавим строку:
В колонке область выберем Месяц, а в колонке Оформление зададим формат вывода:
Очень часто меня спрашивают: Как установить адресный классификатор (КЛАДР) для 1С?
Опишу в кратце этот не сложный процесс: КЛАДР (KLADR) - аббревиатура от Классификатор Адресов России.
Это несколько таблиц, в которых хранятся все (ну почти все;) ) адрес России.
КЛАДР нужен для того, чтобы проще, быстрее и с меньшими ошибками вводить адреса. КЛАДР позволяет не только проще и быстрее ввести адрес, узнать индекс, избажеть орфографических ошибок, но и вводить адреса в едином стандарте, что особенно актуально налоговым органам.
Если КЛАДР не установлен, то мы увидим сообщение "Не загружены классификаторы. Перейдите на закладку "Классификаторы" и загрузите классификаторы, например с диска ИТС!" Как установить классификаторы (КЛАДР) описано здесь.
Как установить КЛАДР для 1С Предприятие 8.х?
1 Скачиваем КЛАДР и распаковываем все файлы из архива в каталог
2 Необходимо зайти в Адресный классификатор, сделать это можно двумя способами:
а) Зайдите в справочник Физические Лица, нажмите Добавить. Или выберите существующего сотрудника.
В открывшемся окне перейдите на закладку Адреса и телефоны и в любом адресе нажмите "..." (в ЗУП и УТ нажмите на Представление)
В самом верху нажмите кнопку Классификатор
б) В программе 1С Предприятие 8 открываем пункт верхнего меню "Операции" и открываем список "Регистры сведений"
в открывшемся списке выбираем "Адресный классификатор и далее Загрузить классификатор
3 Если адресный классификатор абсолютно пуст, появится окно с предложением загрузить классификатор:
4 Если пути уже заполнены - сотрите их. Потом нажмите "..." напротив первой строчки и выберите файл KLADR.DBF из каталога, куда вы его распаковали. Остальные строчки заполнятся автоматически. Должно получится вот так
5 Выбираем регионы, по которым необходимо произвести загрузку адресов. (При помощи кнопок > >> переносим необходимые регионы из левого списка в правый:
После всех настроек нажимаем кнопку Загрузить и начинается процесс загрузки
После завершения процесса загрузки можно пользоваться адресным классификатором. *17
Как установить КЛАДР для 1С Предприятие 7.7?
Установка выполняется в два действия:
1. Скачиваем КЛАДР и распаковываем все файлы в каталог Вашей информационной базы в папку ExtDB.
2. Запускаем 1С Предприятие монопольно и ждем пока не закончится переиндексация файлов КЛАДР.
Вопрос:
Была проблема с расчетами в конфигурации, поэтому обновил 2.5.23.4 на 2.5.24.2 (кажется, она тестовая была). А вот теперь не могу обновить на 2.5.24.4, т.к. при обновлении сообщается, что обновляются только релизы 2.5.23.4 и 2.5.24.3. Но что интересно, ни 2.5.24.2, ни 2.5.24.3 нигде теперь нет. Как теперь обновиться?
Ответ:
Варианты решения проблемы:
1. Простой - найти CF файл новой конфигурации и через сравнение и объединение обновить!
2. Сложный - Берём из архивов нужную конфигурацию(в этом случае 2.5.23.4) и загружаем в рабочую базу. Далее, сразу, без запусков базы, при помощи обновлений обновляем как обычно!
Для возведения числа в степень в 1С 8.х есть встроенная функция pow(основание, степень);
Возвращает результат возведения основания в указанную степень.
* основание: число
* степень: число