Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RFpro.ru: 1С для программиста


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Владимир Лазурко
Статус: Профессионал
Рейтинг: 955
∙ повысить рейтинг »
М.Денис
Статус: Студент
Рейтинг: 671
∙ повысить рейтинг »
Краюшкин Игорь Валерьевич
Статус: Студент
Рейтинг: 657
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / 1С для программиста

Номер выпуска:1128
Дата выхода:01.02.2010, 13:00
Администратор рассылки:Владимир Лазурко, Профессионал
Подписчиков / экспертов:550 / 135
Вопросов / ответов:1 / 2

Вопрос № 176337: Здравствуйте. 1с 7.7 ЗиК 2.3 В справочнике Сотрудник при нажатии отчетность в форме Т2 не отображается приказ и дата увольнения. Происходит это у тех кто увольнялся и вновь приходил, у остальных нормально. у них при нажатии отчетность появляется в...



Вопрос № 176337:

Здравствуйте. 1с 7.7 ЗиК 2.3
В справочнике Сотрудник при нажатии отчетность в форме Т2 не отображается приказ и дата увольнения. Происходит это у тех кто увольнялся и вновь приходил, у остальных нормально. у них при нажатии отчетность появляется выбор периода работы. как и где это нужно исправить?Чтоб отображал дату выбранного периода.

Отправлен: 27.01.2010, 12:44
Вопрос задал: DavidKuch, Посетитель
Всего ответов: 2
Страница вопроса »


Отвечает Сайко Владимир Владимирович, 2-й класс :
Здравствуйте, DavidKuch.
Сразу говорю что с ЗиК не работал. Но исходя из вопроса могу предположить, что при формировании отчета идет проверка даты увольнения и скорее всего она сравнивается с датой приема. А если человек вновь принят на работу то проверку и не проходит.

Это можно отследить с помощью отладчика.
Открываем в конфигураторе интересующий нас отчет. Открываем его форму. Кнопка, которая формирует отчет - свойства - закладка "дополнительно" - поле формула - название процедуры.
Затем открываем модуль формы - находим нужную процедуру - устанавливаем курсор на первой строке процедуры, затем меню "действие - открыть в отладчике". Когда отладчик открылся на первой строке процедуры нажимаем F9 (т.е. устанавливаем точку останова программы).

Затем запускаем программу в режиме Предприятие и запускаем отчет на интересующем нас человеке. Программа должна сразу попасть в отладчик. В отладчике начинаете нажимать F8 (шагнуть в) и прог рамма начнет выполнятся построчно (т.е. при каждом нажатии F8 выполняется следующая строка). И так пока не найдете проверку на дату приема.
Затем запоминаете место, где проходит проверка и в конфигураторе настраиваете модуль как вам нужно.

В общем если что еще нужно будет обращайтесь, уточню.
С учетом мини-форума
-----
∙ Отредактировал: Владимир Лазурко, Профессионал
∙ Дата редактирования: 28.01.2010, 12:57 (время московское)

Ответ отправил: Сайко Владимир Владимирович, 2-й класс
Ответ отправлен: 27.01.2010, 23:36
Номер ответа: 259017

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 259017 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Отвечает Владимир Лазурко, Профессионал :
    Здравствуйте, DavidKuch.

    По кнопке Отчетность из элемента справочника Сотрудники формируется список доступных форм отчетности в зависимости от состояния этого элемента - записан/не записан и т.д.
    При выборе отчета "Форма Т2" вычисляется текущая дата использования периодических реквизитов для этого сотрудника (обычно это рабочая дата) и по ней вычисляется текущий период работы сотрудника:
    Код:
    ДатаОтчета = ИспользоватьДату();
    ПериодыРаботы = глПолучитьПериодыРаботы(ТекущийЭлемент());
    Если ПериодыРаботы.РазмерСписка()>1 Тогда
    Период = "";
    ПериодыРаботы.ВыбратьЗначение(Период,,,,1);
    ДатаОтчета = Дата(Прав(Период,8));
    КонецЕсли;

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

    Форма Т-2 при открытии получает параметры - Сотрудник, дату актуальности отчета (дата окончания выбранного в списке периода) и флаг режима таблицы - ввод данных или просмотр.

    В самом отчете Т-2 в процедуре ПриОткрытии() по дате периода ищется последний приказ о приеме на работу и дата найденного приказа является началом периода отчета.

    Чтобы Вы могли самостоятельно изменить период отчета в форме, поместите на форму 2 поля ввода рядом с кнопками Сохранить и Закрыть. Идентификаторы этих ролей будут как и у переменных в этом модуле: ДатаНачала, и ДатаОкончания тип Дата и для удобства выбора периода кнопку, в формуле которой пропишем ВвестиПериод(ДатаНачала,ДатаОкончания). Поместим текстовые метки для описания этих реквизитов: "Период с:" и "по".


    Но этого недостаточно - нужно еще и обновить отчет. Далее добавим кнопку Сформировать, в формулу которой поместим следующее: ПериодЗаданВручную=1; ПриОткрытии().
    В модуле обработки добавим переменную модуля, они находяятся в самом начале (добавленная строка выделена цветом)
    Код:
    Перем Сотрудник;
    Перем СтарыеЗначенияТаблицы;
    Перем ТолькоПросмотр; // флаг, если форму открыли только для просмотра
    Перем ПериодЗаданВручную; // флаг того, что период отчета выбран в форме диалога

    После этого в конце модуля, после описания процедур и функция добавим такую строку:

    ПериодЗаданВручную=0;,

    а в процедуре ПриОткрытии() изменим код на следующий (цветом вы делены добавленные строки):
    Код:
    Процедура ПриОткрытии()

    Если ТипЗначенияСтр(Форма.Параметр)="СписокЗначений" Тогда
    ТекущийСотрудник = Форма.Параметр.Получить("Сотрудник");
    Если ПериодЗаданВручную=0 Тогда
    ДатаОкончания = Форма.Параметр.Получить("ДатаАктуальности");
    ТолькоПросмотр = Число(Форма.Параметр.Получить("ТолькоПросмотр"));
    Если (Форма.МодальныйРежим()=1)
    или (ПустоеЗначение(ТекущийСотрудник)=1)
    или (ПустоеЗначение(ДатаОкончания)=1) Тогда
    СтатусВозврата(0); Возврат
    КонецЕсли;
    Сотрудник = СоздатьОбъект("Справочник.Сотрудники");
    Сотрудник.НайтиЭлемент(ТекущийСотрудник);
    // найдем приказ о приеме с отрудника, если он отсутствует, то этот сотрудник
    // на дату ДатаОкончания не был принят на работу, поэтому Форма Т-2 не должна откр ываться
    Приказ = глПриказПоСотруднику(Сотрудник,ДатаОкончания,"ПриказОПриемеНаРаботу",-1);
    Если ПустоеЗначение(Приказ)=1 Тогда
    СтатусВозврата(0); Возврат
    КонецЕсли;
    ДатаНачала = Приказ.ДатаПриема;
    Иначе
    // Приказ используется в дальнейшем, его нужно найти
    Приказ = глПриказПоСотруднику(Сотрудник,ДатаОкончания,"ПриказОПриемеНаРаботу",-1);
    Если ПустоеЗначение(Приказ)=1 Тогда
    Предупреждение("За указанный период нет приказа о приемена работу");
    Возврат;
    КонецЕсли;
    КонецЕсли; //ПериодЗаданВручную=0


    ... // далее по тексту


    Прокомментирую. При открытии формы переменной ПериодЗаданВручную присваивается нулевое значение, а при нажатии кнопки Сформировать они принимает значение 1. Это нужно для того, чтобы разделять способ получения периода отчета - по переданным параметрам или введенным вручную на форм е отчета.

    Успехов!
    С уважением, Владимир.

    Ответ отправил: Владимир Лазурко, Профессионал
    Ответ отправлен: 30.01.2010, 09:11
    Номер ответа: 259068

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 259068 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.14 от 23.01.2010

    В избранное