|
Ввод на основании | ☑ | ||
---|---|---|---|---|
0
hasan-rusel
04.07.14
✎
09:12
|
Ввожу новый документ на основании следующим образом:
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ОтпускаОрганизаций") Тогда // Заполнение шапки Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтпускаОрганизацийРаботникиОрганизации.Ссылка, | ОтпускаОрганизацийРаботникиОрганизации.НомерСтроки, | ОтпускаОрганизацийРаботникиОрганизации.Сотрудник, | ОтпускаОрганизацийРаботникиОрганизации.ФизЛицо, | ОтпускаОрганизацийРаботникиОрганизации.ОсвобождатьСтавку, | ОтпускаОрганизацийРаботникиОрганизации.ДатаНачала, | ОтпускаОрганизацийРаботникиОрганизации.ДатаОкончания, | ОтпускаОрганизацийРаботникиОрганизации.УдалитьПроизошедшееСобытие, | ОтпускаОрганизацийРаботникиОрганизации.ПричинаОтсутствия, | ОтпускаОрганизацийРаботникиОрганизации.ВидДополнительногоОтпуска, | ОтпускаОрганизацийРаботникиОрганизации.РабочийГодС, | ОтпускаОрганизацийРаботникиОрганизации.РабочийГодПо, | ОтпускаОрганизацийРаботникиОрганизации.ДатаНачалаДоп, | ОтпускаОрганизацийРаботникиОрганизации.Основание, | ОтпускаОрганизацийРаботникиОрганизации.УдалитьПриказ, | ОтпускаОрганизацийРаботникиОрганизации.НапомнитьПоЗавершении, | ОтпускаОрганизацийРаботникиОрганизации.Сторно, | ОтпускаОрганизацийРаботникиОрганизации.КоличествоДней, | ОтпускаОрганизацийРаботникиОрганизации.КоличествоДнейДоп, | ОтпускаОрганизацийРаботникиОрганизации.ДнейОтпуска |ИЗ | Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ОтпускаОрганизацийРаботникиОрганизации |ГДЕ | ОтпускаОрганизацийРаботникиОрганизации.Ссылка = &ДанныеЗаполнения"; Запрос.УстановитьПараметр("ДанныеЗаполнения", ДанныеЗаполнения); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.Количество() > 1 Тогда НовыйДокумент = Документы.НачислениеОтпускаРаботникамОрганизаций.СоздатьДокумент(); Форма = НовыйДокумент.ПолучитьФорму(); Форма.Сотрудник = Выборка.Сотрудник; Форма.ДатаНачалаСобытия = Выборка.ДатаНачала; Форма.ДатаНачалаОсновногоОтпуска = Выборка.ДатаНачала; Форма.ДатаОкончанияОсновногоОтпуска = Выборка.ДатаОкончания; Форма.РабочийГодС = Выборка.РабочийГодС; Форма.РабочийГодПо = Выборка.РабочийГодПо; Форма.КоличествоДнейОсновногоОтпуска = Выборка.КоличествоДней; Форма.Открыть(); Иначе Сотрудник = Выборка.Сотрудник; ДатаНачалаСобытия = Выборка.ДатаНачала; ДатаНачалаОсновногоОтпуска = Выборка.ДатаНачала; ДатаОкончанияОсновногоОтпуска = Выборка.ДатаОкончания; РабочийГодС = Выборка.РабочийГодС; РабочийГодПо = Выборка.РабочийГодПо; КоличествоДнейОсновногоОтпуска = Выборка.КоличествоДней; КонецЕсли; КонецЦикла; КонецЕсли; Т.е. если в табличной части документа 1 строка, то открывается 1 форма заполненная, тут все ок, но если в ТЧ N строк, то открывается N заполненных форм + 1 пустая, как этого избежать ? Заранее спасибо ! |
|||
1
Azverin
04.07.14
✎
09:20
|
(0) ты чего сказать то хотел? что нужно?
|
|||
2
hasan-rusel
04.07.14
✎
09:23
|
(1) как избежать открытия еще одной пустой формы, когда строк ТЧ N ?
|
|||
3
Hans
04.07.14
✎
09:26
|
зачем это все
НовыйДокумент = Документы.НачислениеОтпускаРаботникамОрганизаций.СоздатьДокумент(); Форма = НовыйДокумент.ПолучитьФорму(); Форма.Сотрудник = Выборка.Сотрудник; Форма.ДатаНачалаСобытия = Выборка.ДатаНачала; Форма.ДатаНачалаОсновногоОтпуска = Выборка.ДатаНачала; Форма.ДатаОкончанияОсновногоОтпуска = Выборка.ДатаОкончания; Форма.РабочийГодС = Выборка.РабочийГодС; Форма.РабочийГодПо = Выборка.РабочийГодПо; Форма.КоличествоДнейОсновногоОтпуска = Выборка.КоличествоДней; Форма.Открыть(); |
|||
4
Hans
04.07.14
✎
09:26
|
Зачем новый документ создавать и открывать форму в обработке заполнения?
|
|||
5
Hans
04.07.14
✎
09:27
|
Пиши в сам объект он откроется сам скорее всего.
|
|||
6
Azverin
04.07.14
✎
09:27
|
(4) я вот тоже прибалдел от кода. пойду-ка я отсюдова...
|
|||
7
hasan-rusel
04.07.14
✎
09:31
|
(4) а как ? Нужно при вводе на основании, из документа отпуска организации, ввести документ начисление отпуска по количеству строк в документе отпуска.
|
|||
8
barrgand
04.07.14
✎
09:32
|
(2) Убрать пустую строку из документа ОтпускаОрганизаций?
|
|||
9
hasan-rusel
04.07.14
✎
09:40
|
(8) ее нет.
например в ТЧ 2 строки, Выборка.количество = 2 а открывается 2 формы заполненные + 1 пустая. |
|||
10
barrgand
04.07.14
✎
09:43
|
(9) Ну тогда в (0) не весь код
|
|||
11
rincewind
04.07.14
✎
09:44
|
(9) только православный отладчик поможет в таком случае
|
|||
12
hhhh
04.07.14
✎
09:46
|
(10) не, всё правильно Форма.Открыть(); - это открываются 2 формы, но вы забыли, что ввод на основании тоже открывает форму. Вот это она и есть, пустая.
|
|||
13
hasan-rusel
04.07.14
✎
09:50
|
(12) а как сделать так, чтобы ввод на основании не открывал "свою" форму ?
|
|||
14
hhhh
04.07.14
✎
10:05
|
(13) думаю, в ПередОткрытием вставить Отказ = Истина
|
|||
15
hasan-rusel
04.07.14
✎
10:12
|
(14) нужно условие какое-то, иначе он вообще не открывается.)
|
|||
16
Defender aka LINN
04.07.14
✎
10:15
|
(0) Молодец. Теперь твой говнокод не даст документу работать ни в одном режиме кроме клиентского.
|
|||
17
hasan-rusel
04.07.14
✎
10:18
|
(16) в другом и не надо.
|
|||
18
Крошка Ру
04.07.14
✎
10:20
|
(0) Я чего-то не понимаю?
Если уж так хочется открыть только одну форму, открывай её ПЕРЕД циклом. |
|||
19
hasan-rusel
04.07.14
✎
10:23
|
(18) нужно открыть ее столько раз, сколько строк в ТЧ, а он открывает сколько строк в Тч +1.
|
|||
20
Defender aka LINN
04.07.14
✎
10:24
|
(17) Это тебе не надо. Точнее ты так думаешь.
|
|||
21
Defender aka LINN
04.07.14
✎
10:25
|
(19) Вот скажи, какая религия лично тебе запрещает сделать *кнопку*, которая вот это вот выполнять будет?
|
|||
22
Крошка Ру
04.07.14
✎
10:25
|
(19) Кстати, а вот это внутри цикла зачем?
Если Выборка.Количество() > 1 Тогда |
|||
23
hasan-rusel
04.07.14
✎
10:28
|
(22) потому что то, что после Иначе он выполняет норм, найду решение, исправлю)
|
|||
24
hasan-rusel
04.07.14
✎
10:29
|
(21) ТЗ за религию сойдёт ?
|
|||
25
Крошка Ру
04.07.14
✎
10:29
|
(19) И ещё, кстати, вангую, что где-то ещё у тебя форма этого документа открывается.
Куда и идут данные, заполняемые в ветке "Иначе". А когда Выборка.Количество()>1, то эти данные пустые и соответственно, форма открывается пустая |
|||
26
Крошка Ру
04.07.14
✎
10:30
|
(23) Да нет, зачем это ВНУТРИ цикла?
|
|||
27
Defender aka LINN
04.07.14
✎
10:32
|
(24) В ТЗ написано сделать это в обработке заполнения?
1. Не свисти. 2. Если риальне не свистишь (вероятность КРАЙНЕ МАЛА) - постановщик ТЗ долбоклюй, конечно, но ты тоже, раз такое делаешь. |
|||
28
Borteg
04.07.14
✎
10:37
|
(0) в обработке заполнения только заполнение,передавай туда например строку тз в структуре.
выводишь кнопку массивдляоткрытия = новый массив()4 для каждого строка из моей тз Документ = Мойдокумент.создатьдокумент(); Документ.Заполнить(Строка) Документ.Записать() массивдляоткрытия.добавить(документ.ссылка); конецЕсли; потом можно все это пооткрывать если сильно хочется тоже циклом например Для каждого строка из массивдляоткрытия цикл конеццикла |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |