|
v7: Не могу назначить тип | ☑ | ||
---|---|---|---|---|
0
Melcor
18.10.11
✎
20:56
|
Пытаюсь создать документ ПоступлениеПрочее внешней обработкой. Когда назначаю тип реквизиту счет - Док.НазначитьТип("Счет", "Счет");
Реквизит остается пустым и вследствие выдает ошибку - Док.НазначитьТип("Субконто1", Док.Счет.ВидСубконто(1)); Значение не представляет агрегатный объект (ВидСубконто) |
|||
1
Melcor
18.10.11
✎
20:56
|
конфа - Комплексная 7.7
|
|||
2
Азат
18.10.11
✎
21:00
|
Док.НазначитьТип("Субконто1", Док.Счет.ВидСубконто(1).ТипСубконто());
прокатывает? |
|||
3
Melcor
18.10.11
✎
21:03
|
Неа, так не прокатывает( блин, ужо мозги закипят скоро, а сегодня надо все добить(
|
|||
4
Азат
18.10.11
✎
21:04
|
Док.Счет - чему равно?
сколько субконто у счета? |
|||
5
Начинающий Программер
18.10.11
✎
21:04
|
Попробовать Строка(Док.Счет.ВидСубконто(1)) ?
|
|||
6
Melcor
18.10.11
✎
21:05
|
ИначеЕсли строка(СчетПоКоду(СокрЛП(Докум.Счет.Код))) = "26" тогда
//глУстановитьТипВидРеквизита(Док,"Счет","Счет"); Док.НазначитьТип("Счет", "Счет"); Док.Счет = СчетПоКоду(СокрЛП(Докум.Счет.Код)); Док.НазначитьТип("Субконто1", Док.Счет.ВидСубконто(1)); Док.Субконто1 = ЗагрузитьСтатьиОбщепроизводственныхЗатрат(Докум.Субконто1); КонецЕсли; |
|||
7
Vol71
18.10.11
✎
21:06
|
Док.Счет - неопределенный тип?
|
|||
8
Melcor
18.10.11
✎
21:06
|
Док.Счет не устанавливается, пустота, в этом и проблема
|
|||
9
Melcor
18.10.11
✎
21:06
|
да, неопределенный
|
|||
10
Азат
18.10.11
✎
21:06
|
(6) ты долбаешься? такую херню написал
|
|||
11
Kreont
18.10.11
✎
21:06
|
Док.НазначитьТип("Счет", СчетПоКоду("36.1"));
|
|||
12
Азат
18.10.11
✎
21:06
|
Док.НазначитьТип("Счет", "Счет.Основной"); - если плансчетов Основной
|
|||
13
Melcor
18.10.11
✎
21:08
|
не один из вариантов не сработал(
|
|||
14
Vol71
18.10.11
✎
21:09
|
а если поремить
Док.НазначитьТип("Счет", "Счет"); |
|||
15
Melcor
18.10.11
✎
21:10
|
так и было изначально, почему это не работает ума не приложу
|
|||
16
Азат
18.10.11
✎
21:11
|
вот я одного не пойму:
ИначеЕсли строка(СчетПоКоду(СокрЛП(Докум.Счет.Код))) = "26" тогда //глУстановитьТипВидРеквизита(Док,"Счет","Счет"); Док.НазначитьТип("Счет", "Счет"); Док.Счет = СчетПоКоду(СокрЛП(Докум.Счет.Код)); Док.НазначитьТип("Субконто1", Док.Счет.ВидСубконто(1)); Док.Субконто1 = ЗагрузитьСтатьиОбщепроизводственныхЗатрат(Докум.Субконто1); КонецЕсли; Если в иначе если уже заполнен док.счет, то нафига его снова переприсваивать? |
|||
17
Vol71
18.10.11
✎
21:11
|
(15)Не понимаю, почему Док.Счет - неопределенный тип
|
|||
18
Melcor
18.10.11
✎
21:12
|
если внимательно присмотреться, можно заметить, что в иначе Докум, а не Док
|
|||
19
Melcor
18.10.11
✎
21:12
|
Потому как в конфе у Документа ПоступлениеПрочие Счет - неопределенный
|
|||
20
Vol71
18.10.11
✎
21:15
|
а если поремить
Док.НазначитьТип("Счет", "Счет"); и написать Док.Счет = Строка(СокрЛП(СчетПоКоду(СокрЛП(Докум.Счет.Код)))); |
|||
21
Melcor
18.10.11
✎
21:18
|
да нет уж, тип реквизиту Счет от этого не назначится
|
|||
22
Kreont
18.10.11
✎
21:19
|
(12) <- точно не работает, а как план счетов именуется?
|
|||
23
Melcor
18.10.11
✎
21:19
|
Точно, Основной именуется
|
|||
24
Vol71
18.10.11
✎
21:19
|
(21)Извини, согласен, пиво дает себя знать
Счет-агрегатный тип объекта? |
|||
25
Melcor
18.10.11
✎
21:20
|
да, агрегатный - это реквизит документа
|
|||
26
Ёпрст
18.10.11
✎
21:21
|
(0) назначать тип нужно для каждой строки документа
|
|||
27
Melcor
18.10.11
✎
21:22
|
Вот вся процедура, я может просто туплю отчаянно уже, Докум - это OLE объект из идентичной конфы, мне необходимо грубо говоря скопировать сюда этот документ
Процедура ЗагрузитьПоступлениеПрочее(Докум); Док = СоздатьОбъект("Документ.ПоступлениеПрочее"); Новый = 0; //Номер = НомерНаПечать(Докум); Если Док.НайтиПоНомеру(Докум.НомерДок, Докум.ДатаДок) = 0 Тогда Новый = 1; Док.Новый(); Док.ДатаДок = Докум.ДатаДок; Док.НомерДок = Докум.НомерДок; КонецЕсли; СпрФ = СоздатьОбъект("Справочник.Фирмы"); СпрФ.НайтиПоКоду(Докум.Фирма.Код,0); Док.Фирма = СпрФ.ТекущийЭлемент(); Док.Контрагент = ЗагрузитьКонтрагента(Докум.Контрагент, Докум); Док.Договор = ЗагрузитьДоговор(Докум.Договор, Док.Контрагент, Докум); Док.Валюта = ЗагрузитьВалюту(Докум.Валюта,Докум); Док.УчитыватьНДС = Докум.УчитыватьНДС; Док.Курс = Докум.Курс; Док.Кратность = Докум.Кратность; Док.СуммаВклНДС = Докум.СуммаВклНДС; Док.СуммаВзаиморасчетов = Докум.СуммаВзаиморасчетов; Док.ДатаОплаты = Докум.ДатаОплаты; Док.НомерДокВходящий = Докум.НомерДокВходящий; Док.ДатаДокВходящий = Докум.ДатаДокВходящий; Док.НеВыгружать = Докум.НеВыгружать; Док.Записать(); Док.УдалитьСтроки(); Докум.ВыбратьСтроки(); Пока Докум.ПолучитьСтроку() = 1 Цикл Док.Содержание = Докум.Содержание; Док.Количество = Докум.Количество; Док.Цена = Докум.Цена; Док.Сумма = Докум.Сумма; Док.СуммаНДС = Докум.СуммаНДС; Если Докум.СтавкаНДС.Идентификатор() = "БезНДС" Тогда Док.СтавкаНДС = перечисление.СтавкиНДС.БезНДС; ИначеЕсли Докум.СтавкаНДС.Идентификатор() = "НДС10" Тогда Док.СтавкаНДС = перечисление.СтавкиНДС.НДС10; ИначеЕсли Докум.СтавкаНДС.Идентификатор() = "НДС20" Тогда Док.СтавкаНДС = перечисление.СтавкиНДС.НДС20; ИначеЕсли Докум.СтавкаНДС.Идентификатор() = "НДС9_09" Тогда Док.СтавкаНДС = перечисление.СтавкиНДС.НДС9_09; ИначеЕсли Докум.СтавкаНДС.Идентификатор() = "НДС16_67" Тогда Док.СтавкаНДС = перечисление.СтавкиНДС.НДС16_67; ИначеЕсли Докум.СтавкаНДС.Идентификатор() = "НДС20_120" Тогда Док.СтавкаНДС = перечисление.СтавкиНДС.НДС20_120; ИначеЕсли Докум.СтавкаНДС.Идентификатор() = "НДС10_110" Тогда Док.СтавкаНДС = перечисление.СтавкиНДС.НДС10_110; ИначеЕсли Докум.СтавкаНДС.Идентификатор() = "НДС18" Тогда Док.СтавкаНДС = перечисление.СтавкиНДС.НДС18; ИначеЕсли Докум.СтавкаНДС.Идентификатор() = "НДС18_118" Тогда Док.СтавкаНДС = перечисление.СтавкиНДС.НДС18_118; КонецЕсли; Если строка(СчетПоКоду(СокрЛП(Докум.Счет.Код))) = "44.1.1" тогда Док.Счет = СчетПоКоду(СокрЛП(Докум.Счет.Код)); Док.НазначитьТип("Субконто1", Док.Счет.ВидСубконто(1)); Док.Субконто1 = ЗагрузитьИздержкиОбращения(Докум.Субконто1); ИначеЕсли строка(СчетПоКоду(СокрЛП(Докум.Счет.Код))) = "26" тогда //глУстановитьТипВидРеквизита(Док,"Счет","Счет"); Док.НазначитьТип("Счет", "Счет"); //Док.Счет = СчетПоКоду(СокрЛП(Докум.Счет.Код)); Док.Счет = Строка(СокрЛП(СчетПоКоду(СокрЛП(Докум.Счет.Код)))); Док.НазначитьТип("Субконто1", Док.Счет.ВидСубконто(1)); Док.Субконто1 = ЗагрузитьСтатьиОбщепроизводственныхЗатрат(Докум.Субконто1); КонецЕсли; КонецЦикла; Док.Записать(); Если Докум.Проведен()=1 тогда Док.Провести(); КонецЕсли; Сообщить(?(Новый = 1, "Создан и записан документ: "+Док.ТекущийДокумент(), "Найден и изменен документ: "+Док.ТекущийДокумент())); КонецПроцедуры |
|||
28
Melcor
18.10.11
✎
21:23
|
Блин))) Простите, к вечеру бошка не варит уже, забыл новая строка вставить)
|
|||
29
Melcor
18.10.11
✎
21:24
|
фиг бы заметил если бы сюда код не скинул)
|
|||
30
Kreont
18.10.11
✎
21:24
|
Пока Докум.ПолучитьСтроку() = 1 Цикл
НоваяСтрока!!! Док.Содержание = Докум.Содержание; |
|||
31
Злопчинский
18.10.11
✎
21:24
|
После назначения типа "счет2 неплохо бы в поле/реквизит с типом "счет" присвоить что нибудь...
|
|||
32
Kreont
18.10.11
✎
21:24
|
(29) Мисталадчик рулит :)
|
|||
33
Vol71
18.10.11
✎
21:29
|
(29)Молодец, и решил сам, и мы узнали что речь шла о табличной части :))
|
|||
34
1Сергей
19.10.11
✎
10:04
|
(33) Почему это сам? а (26)?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |