Имя: Пароль:
1C
1С v8
Проблема с заполнением поля формы документа.
,
0 Bodrug
 
24.07.14
12:03
Есть поле на форме со ссылкой на реквизит документа типа "Характеристика.ВидыСубконтоХозрасчетные". Не получается программно заполнить это поле.
1 Рэйв
 
24.07.14
12:04
А чем ты заполняешь?
2 Bodrug
 
24.07.14
12:07
(1) Заполняю значением этого же поля, только из предыдущего проведенного документа. На данный момент - это элемент справочника "Статьи затрат".
3 Bodrug
 
24.07.14
12:13
Вот мой код:

        ЗапросСписание.Текст = "ВЫБРАТЬ
                               |    ХозрасчетныйДвиженияССубконто.Регистратор,
                               |    ХозрасчетныйДвиженияССубконто.СчетДт,
                               |    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
                               |    ХозрасчетныйДвиженияССубконто.НалоговоеНазначениеДт
                               |ИЗ
                               |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
                               |ГДЕ
                               |    ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.СписаниеТоваров)
                               |
                               |СГРУППИРОВАТЬ ПО
                               |    ХозрасчетныйДвиженияССубконто.Регистратор,
                               |    ХозрасчетныйДвиженияССубконто.СчетДт,
                               |    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
                               |    ХозрасчетныйДвиженияССубконто.НалоговоеНазначениеДт
                               |
                               |УПОРЯДОЧИТЬ ПО
                               |    ХозрасчетныйДвиженияССубконто.Регистратор.Дата УБЫВ";
        
        РезультатСписание = ЗапросСписание.Выполнить().Выгрузить();
        Если РезультатСписание.Количество()>0 Тогда
        СписаниеТоваров.СубконтоДт3 = РезультатСписание[0].СубконтоДт2;
        СписаниеТоваров.СчетДт = РезультатСписание[0].СчетДт;
        СписаниеТоваров.НалоговоеНазначениеДоходовИЗатрат = РезультатСписание[0].НалоговоеНазначениеДт;
        КонецЕсли;

При этом, самому реквизиту СубконтоДт3 присваивается значение, но на форме этого не видно.
4 Рэйв
 
24.07.14
12:15
Форма.Обновить() пробовал?
5 Cube
 
24.07.14
12:19
(3) Что такое СписаниеТоваров?
6 Bodrug
 
24.07.14
12:19
(4) Попробовал, не помогает.

Мне кажется все загвоздка в том, что реквизит имеет не тип "СправочникСсылка.СтатьиЗатрат" и не составной тип, а именно "Характеристика.ВидыСубконтоХозрасчетные". И на форме для ручного заполнения в нужном мне поле сначала нужно нажать кнопку "Т", открывается список выбора типа элемента ("Статьи затрат"), и только потом появляется кнопка выбора "..." и  можно выбрать элемент справочника.
7 Bodrug
 
24.07.14
12:20
(5) Списание товаров - это новый документ "Списание товаров"
8 Deon
 
24.07.14
12:21
Посмотри, как сделано в любом документе, в котором выбираешь счет и появляются поля выбора аналитики с правильным типом.
9 Wobland
 
24.07.14
12:23
>Заполняю значением этого же поля, только из предыдущего проведенного документа.
ничего, что это не так?
10 Bodrug
 
24.07.14
12:24
(9) Почему не так?
11 Cube
 
24.07.14
12:25
(10) Может потому, что ты в запросе не нашел предыдущий документ?... А работаешь с движениями документа...
12 Wobland
 
24.07.14
12:26
(10) ИЗ
                               |    РегистрБухгалтерии.Хозрасчетный
13 Bodrug
 
24.07.14
12:27
(11) Я ведь задал условие на тип документа и упорядочил по дате по убыванию. Запросником проверял - все правильно
14 Bodrug
 
24.07.14
12:29
Вытягивал данные через регистр, а не из документа, т.к. тот реквизит, значение которого мне надо скопировать в новый документ, тянется со значением NULL.
15 Cube
 
24.07.14
12:31
(14) Всё чудесатее и чудесатее)))
16 Bodrug
 
24.07.14
12:31
(15) =)
17 Рэйв
 
24.07.14
12:35
странно.У меня все заполняется.
18 Bodrug
 
24.07.14
12:47
Короче, выкрутился по-другому. Нашел последний проведенный документ списания, программно скопировал его и потом заполнил в нем данные.
Вопрос закрыт, спасибо всем за помощь. =)