8.х Не заполняется табличная часть при вводе на основании

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Glikeria, 30 авг 2010.

  1. TopicStarter Overlay
    Glikeria
    Offline

    Glikeria

    Регистрация:
    30 авг 2010
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Запрос=Новый Запрос("ВЫБРАТЬ
    | СостояниеПоДокументуОтпускаОрганизаций.Организация,
    | СостояниеПоДокументуОтпускаОрганизаций.Сотрудник,
    | СостояниеПоДокументуОтпускаОрганизаций.Состояние КАК ВидОтпуска,
    | МИНИМУМ(СостояниеПоДокументуОтпускаОрганизаций.Период) КАК ДатаНачалаОтпуска,
    | СостояниеПоДокументуОтпускаОрганизаций.ПериодЗавершения КАК ДатаОкончанияОтпуска,
    | ДОБАВИТЬКДАТЕ(СостояниеПоДокументуОтпускаОрганизаций.ПериодЗавершения, ДЕНЬ, 1) КАК ДатаОкончанияОтпускаПлюсОдинДень,
    | СостояниеРаботниковОрганизаций.Период КАК ДатаНачалаСостоянияПослеОтпуска,
    | СостояниеРаботниковОрганизаций.ПериодЗавершения КАК ДатаЗавершенияСостоянияПослеОтпуска,
    | СостояниеРаботниковОрганизаций.Состояние,
    | СостояниеРаботниковОрганизаций.СостояниеЗавершения
    | СостояниеРаботниковОрганизаций.Регистратор КАК Ссылка

    |ИЗ
    | РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеПоДокументуОтпускаОрганизаций
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
    | ПО СостояниеПоДокументуОтпускаОрганизаций.Организация = СостояниеРаботниковОрганизаций.Организация
    | И СостояниеПоДокументуОтпускаОрганизаций.Сотрудник = СостояниеРаботниковОрганизаций.Сотрудник
    | И (СостояниеРаботниковОрганизаций.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает))
    | И (ДОБАВИТЬКДАТЕ(СостояниеПоДокументуОтпускаОрганизаций.ПериодЗавершения, ДЕНЬ, 1) <= СостояниеРаботниковОрганизаций.Период)
    |ГДЕ
    //| СостояниеПоДокументуОтпускаОрганизаций.Регистратор.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

    | СостояниеПоДокументуОтпускаОрганизаций.Регистратор ССЫЛКА Документ.ОтпускаОрганизаций
    |
    |СГРУППИРОВАТЬ ПО
    | СостояниеПоДокументуОтпускаОрганизаций.Организация,
    | СостояниеПоДокументуОтпускаОрганизаций.Сотрудник,
    | СостояниеПоДокументуОтпускаОрганизаций.ПериодЗавершения,
    | СостояниеРаботниковОрганизаций.Период,
    | СостояниеРаботниковОрганизаций.ПериодЗавершения,
    | СостояниеРаботниковОрганизаций.Состояние,
    | СостояниеРаботниковОрганизаций.СостояниеЗавершения,
    | СостояниеПоДокументуОтпускаОрганизаций.Состояние");

    Запрос.УстановитьПараметр("Работает",Перечисления.СостоянияРаботникаОрганизации.Работает);
    //Запрос.УстановитьПараметр("ДатаНачала",ДатаНачала);

    //Запрос.УстановитьПараметр("ДатаОкончания",ДатаОкончания);


    Результат=Запрос.Выполнить();
    Запрос.Выполнить().Выгрузить();
    Выборка=Результат.Выбрать();

    Пока Выборка.Следующий() Цикл

    ДокументОбъект=Документы.ВозвратНаРаботуОрганизаций.СоздатьДокумент();
    ДокументОбъект.Заполнить(ВЫБОРКА.Ссылка);
    ДокументОбъект.Дата=ТекущаяДата();
    ДокументОбъект.Записать();
    //ДокументОбъект.ПолучитьФорму().Открыть();
  2. Наташа
    Offline

    Наташа Опытный в 1С

    Регистрация:
    14 авг 2010
    Сообщения:
    1.442
    Симпатии:
    2
    Баллы:
    29
    Смотрите обработку заполнения документа "Возврат на работу организаций".
    ТЧ заполняется только если у Вас в документе-основании указана дата окончания события и стоит галка "Напомнить".
  3. TopicStarter Overlay
    Glikeria
    Offline

    Glikeria

    Регистрация:
    30 авг 2010
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    А если у меня в документе стоит галка и указана дата,то значит дело в процедуре Обработказаполнения скорее всего?
  4. Наташа
    Offline

    Наташа Опытный в 1С

    Регистрация:
    14 авг 2010
    Сообщения:
    1.442
    Симпатии:
    2
    Баллы:
    29
    Думаю, да. Погоняйте отладчиком :)
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Я в общем то самого вопроса то и не понял. какая ТЧ не заполняется при вводе на основании какого документа. Опишите ситуацию...А мы потом скажем. принт скрин нам нужен или запрос
  6. TopicStarter Overlay
    Glikeria
    Offline

    Glikeria

    Регистрация:
    30 авг 2010
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Не заполняется табличная часть документа ВозвратНаРаботуОрганизаций при вводе на основании документа ОтпускаОрганизаций.Например,дата возврата не заполняется.Сам запрос он у меня выше написан.А процедура ЗаполнениеОбработки выглядит следующим образом:
    Процедура ОбработкаЗаполнения(Основание)
    //{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Если ТипЗнч(Основание) = Тип("ДокументСсылка.ОтпускаОрганизаций") Тогда
    // Заполнение шапки
    ДанныеПрошлойВерсии = Основание.ДанныеПрошлойВерсии;
    ДвиженияИсправляемогоДокумента = Основание.ДвиженияИсправляемогоДокумента;
    Комментарий = Основание.Комментарий;
    КраткийСоставДокумента = Основание.КраткийСоставДокумента;
    Организация = Основание.Организация;
    Ответственный = Основание.Ответственный;
    Для Каждого ТекСтрокаРаботникиОрганизации Из Основание.РаботникиОрганизации Цикл
    НоваяСтрока = РаботникиОрганизации.Добавить();
    НоваяСтрока.Сотрудник = ТекСтрокаРаботникиОрганизации.Сотрудник;
    НоваяСтрока.Сторно = ТекСтрокаРаботникиОрганизации.Сторно;
    НоваяСтрока.УдалитьПриказ = ТекСтрокаРаботникиОрганизации.УдалитьПриказ;
    НоваяСтрока.ФизЛицо = ТекСтрокаРаботникиОрганизации.ФизЛицо;
    КонецЦикла;
    ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.КомандировкиОрганизаций") Тогда
    // Заполнение шапки
    КонецЕсли;
    //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    КонецПроцедуры // ОбработкаЗаполнения()
  7. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Вообще - зачем вам делать возврат на работу? У Вас стоит в документе галочка "Напомнить"? (зачем ее ставите? вы не знаете дату завершения отпуска?)
  8. TopicStarter Overlay
    Glikeria
    Offline

    Glikeria

    Регистрация:
    30 авг 2010
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    В документе стоит(я её проставила с помощью групповой обработки документов).
  9. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Внимание Вопрос- ЗАЧЕМ?

    если стоит дата окончания отпуска, и нет галочки то система сама возвращает. Опять групповой обработкой уберите галочки и перепроведите документы и все. и увидите что все вернулись
  10. TopicStarter Overlay
    Glikeria
    Offline

    Glikeria

    Регистрация:
    30 авг 2010
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    В принципе,мне не важно стоит этот флажок или нет,но после того,как выполнится моя обработка для всех документов ОтпускаОрганизаций,для которых ещё не созданы документы ВозвратНаРаботуОрганизаций,эти документы должны быть созданы.
  11. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Простите меня глупого, но я не понял. зачем вам создавать документы возврат на работу если у Вас в отпуске есть дата окончания отпуска? Групповой обработкой, сделайте отбор всех проведенных отпусков у которых есть галочка напомнить, уберите ее и тут же перепроведите и все, автоматом сотруднике вернуться.Документ сразу сделает 2 движение и в отпуск отправит и вернет..Зачем вам возвраты отдельным документом?
  12. TopicStarter Overlay
    Glikeria
    Offline

    Glikeria

    Регистрация:
    30 авг 2010
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Я изменилапроцедуру заполнения заменила на перебор.Как можно обратиться к полям табличной части документа-регистратора?Мне,например,надо добавить ДатуОкончания из табличной части,но выдаётся следующее сообщение:Нельзя обратиться к вложенной таблице составного типа.Что можно сделать?
    Запрос=Новый Запрос("ВЫБРАТЬ
    | СостояниеПоДокументуОтпускаОрганизаций.Организация,
    | СостояниеПоДокументуОтпускаОрганизаций.Сотрудник,
    | СостояниеПоДокументуОтпускаОрганизаций.Состояние КАК ВидОтпуска,
    | СостояниеПоДокументуОтпускаОрганизаций.Период КАК ДатаНачалаОтпуска,
    | СостояниеПоДокументуОтпускаОрганизаций.ПериодЗавершения КАК ДатаОкончанияОтпуска,
    | ДОБАВИТЬКДАТЕ(СостояниеПоДокументуОтпускаОрганизаций.ПериодЗавершения, ДЕНЬ, 1) КАК ДатаОкончанияОтпускаПлюсОдинДень,
    | СостояниеРаботниковОрганизаций.Период КАК ДатаНачалаСостоянияПослеОтпуска,
    | СостояниеРаботниковОрганизаций.ПериодЗавершения КАК ДатаЗавершенияСостоянияПослеОтпуска,
    | СостояниеРаботниковОрганизаций.Состояние,
    | СостояниеРаботниковОрганизаций.СостояниеЗавершения,
    | СостояниеРаботниковОрганизаций.Регистратор КАК Ссылка,
    | СостояниеРаботниковОрганизаций.Регистратор.Комментарий КАК Комментарий
    |ИЗ
    | РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеПоДокументуОтпускаОрганизаций
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
    | ПО СостояниеПоДокументуОтпускаОрганизаций.Организация = СостояниеРаботниковОрганизаций.Организация
    | И СостояниеПоДокументуОтпускаОрганизаций.Сотрудник = СостояниеРаботниковОрганизаций.Сотрудник
    | И (СостояниеРаботниковОрганизаций.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает))
    | И (ДОБАВИТЬКДАТЕ(СостояниеПоДокументуОтпускаОрганизаций.ПериодЗавершения, ДЕНЬ, 1) <= СостояниеРаботниковОрганизаций.Период)
    |ГДЕ
    | СостояниеПоДокументуОтпускаОрганизаций.Регистратор ССЫЛКА Документ.ОтпускаОрганизаций
    | И СостояниеПоДокументуОтпускаОрганизаций.Регистратор.Проведен
    |ИТОГИ ПО
    | Ссылка");

    Запрос.УстановитьПараметр("Работает",Перечисления.СостоянияРаботникаОрганизации.Работает);
    //Запрос.УстановитьПараметр("ДатаНачала",);
    //Запрос.УстановитьПараметр("ДатаОкончания",ДатаОкончания);

    Результат=Запрос.Выполнить();

    Выборка=Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    ДокументОбъект=Документы.ВозвратНаРаботуОрганизаций.СоздатьДокумент();
    ДокументОбъект.Комментарий=Выборка.Комментарий;
    ДокументОбъект.Организация=Выборка.Организация;
    РаботникОрганизации=ДокументОбъект.РаботникиОрганизации.Добавить();
    РаботникОрганизации.Сотрудник=Выборка.Сотрудник;
    РаботникОрганизации.ДатаВозврата=Выборка.ДатаОкончанияОтпуска;

    ДокументОбъект.Дата=ТекущаяДата();




    КонецЦикла;
  13. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Вы вообще опишите задачу. Вы вот лезите в конфигурацию, что то переписываете, а зачем? потом обновлять как будете?

Поделиться этой страницей