Имя: Пароль:
1C
 
Не заполняется значением переменная
0 Marry04
 
16.05.17
09:07
Есть строка таблицы значений - (СтрокаДокумента). У этой строки есть свойство - статьяДДС ( тип строка)
пытаюсь присвоить значение переменной. Но значением  не заполняется
ДДС = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеЗП;
СтрокаДокумента.СтатьяДДС = ДДС;
Если в ДДС все нормально, тип значение попало. ТО в СтрокаДокумента.СтатьяДДС тип неопределен.
Как присвоить значение?
1 Lexey_
 
16.05.17
09:08
(0) типы разные
2 FIXXXL
 
16.05.17
09:08
этой строки есть свойство - статьяДДС ( тип строка)

перечисление - это не строка, но ссылка
3 igorPetrov
 
16.05.17
09:08
(0) Разные типы.
4 cw014
 
16.05.17
09:13
1) Попробуй ДДС = СокрЛП(Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеЗП);
2) "ТО в СтрокаДокумента.СтатьяДДС тип неопределен." - а уверенна что тип ( строка )?
5 FIXXXL
 
16.05.17
09:15
(4) зачем плохому учишь? :)

потом будет с отбором в запросе глупые вопросы задавать
не надо ссылки в строчки превращать
6 cw014
 
16.05.17
09:21
(5) Иногда надо
7 FIXXXL
 
16.05.17
09:24
(6) тогда уж XMLСтрока() - рекомендую
8 Marry04
 
16.05.17
10:30
(7) (3) (4) на форме изначально СтрокаДокумента.СтатьяДДС -
поле ввода, которое является строкой. Запускаю отладчик. И при запуске показывает тип как неопределен.Потом когда присваиваю значение- тоже остается тип непределенным. Тип может быть у этой переменой разный вообще..
9 FIXXXL
 
16.05.17
10:33
(8) субконто составное что ли? есть в составе тип "Строка"
10 Marry04
 
16.05.17
10:34
(9) не составной тип данных. чисто строка. надо добавить типы. правильно?
11 h-sp
 
16.05.17
10:37
(10) а зачем вообще в поле СтатьяДДС пишете операцию? Пишите статью туда.
12 Marry04
 
16.05.17
10:40
(11) это самописная конфа..
13 Мимохожий Однако
 
16.05.17
10:44
(8)  = Строка(Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеЗП);
Попробуй перед присвоением значений установить тип реквизита ДДС
14 Marry04
 
16.05.17
10:48
(13) нет, все равно тип неопределен..
15 h-sp
 
16.05.17
10:51
(12) всё равно, если назвали СтатьяДДС, то и пишите туда статью ДДС. Зачем путать?
16 FIXXXL
 
16.05.17
10:55
(14) у тебя поле с данными связано? у данных какой тип?
с чего то "строка" то "неопределено"?
поле  - это колонка на форме?
17 AlvlSpb
 
naïve
16.05.17
10:56
ИндексЗначения = Перечисления.ВидыОперацийСписаниеДенежныхСредств.Индекс(ПеречислениеЗП);
        ДДС = Метаданные.Перечисления.ВидыОперацийСписаниеДенежныхСредств.ЗначенияПеречисления[ИндексЗначения].Имя;
18 AlvlSpb
 
naïve
16.05.17
10:58
+(17) Это, если СтрокаДокумента.СтатьяДДС - Строка
19 h-sp
 
16.05.17
11:03
(18) может  ДДС не строка.
20 Marry04
 
16.05.17
11:11
(19) (18) СтатьяДДС -  ТипЗнч "Строка".
Попробовала как в (17) бесполезно. Даже строковый тип данных не хочет записывать в переменную.
21 AlvlSpb
 
naïve
16.05.17
11:11
(19) В (8) автор явно указал " на форме изначально СтрокаДокумента.СтатьяДДС -
поле ввода, которое является строкой. "
22 AlvlSpb
 
naïve
16.05.17
11:16
(20)Прошу прощения, ошибка (по памяти писал)
ЗначениеП = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеЗП;
ИндексЗначения = Перечисления.ВидыОперацийСписаниеДенежныхСредств.Индекс(ЗначениеП);
        ДДС = Метаданные.Перечисления.ВидыОперацийСписаниеДенежныхСредств.ЗначенияПеречисления[ИндексЗначения].Имя;
23 Lexey_
 
16.05.17
11:16
(20) "СтатьяДДС -  ТипЗнч "Строка""
а у СтрокаДокумента.СтатьяДДС какой тип?
24 h-sp
 
16.05.17
11:17
(21) ДДС =  ???
25 Масянька
 
16.05.17
11:17
Извините, а что нельзя самой строке статьяДДС поставить тип не строка, а Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеЗП? Не реализовано?
26 AlvlSpb
 
naïve
16.05.17
11:19
(24) Ну а что? И не такое видали, особенно в самописках. да и не нам решать. Автор сказал, наверное, знает о чем говорит
27 Marry04
 
16.05.17
11:20
(22) (25)  СтрокаДокумента.СтатьяДДС = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеЗП;
нет, так тоже не идет
28 Marry04
 
16.05.17
11:20
(23)  а у СтрокаДокумента.СтатьяДДС Неопределено
29 Масянька
 
16.05.17
11:22
(27) Мне без картинок не понятно...
30 AlvlSpb
 
naïve
16.05.17
11:23
(28) Пробовали (22)?
31 Marry04
 
16.05.17
11:24
(30) да, все равно неопределенно
32 Масянька
 
16.05.17
11:24
(31) Картинку из конфигуратора с этой строкой и свойством.
33 AlvlSpb
 
naïve
16.05.17
11:26
(31) Значит тип значения не строка. Код абсолютно рабочий, недавно использовал. давайте весь код
34 AlvlSpb
 
naïve
16.05.17
11:27
или как в (32)
35 Marry04
 
16.05.17
11:30
(33) (32)
    //4) Определяем вид операции документа
    
    Если Не ЗначениеЗаполнено(СтрокаДокумента.ВидОперации) Тогда
        Если Исходяший Тогда
            Если ЗначениеЗаполнено(РеквизитыПлатежки.Ссылка) Тогда
                // Используем тот же алгоритм, что и при вводе списания с расчетного счета на основании платежного поручения
                //Если РеквизитыПлатежки.ПеречислениеВБюджет Тогда
                //    //ВидОперацииДокумента = УправлениеДенежнымиСредствами.ВидОперацииДокументаПеречисленияВБюджет(СтрокаДокумента.ПоказательКБК);
                //Если ТипЗнч(РеквизитыПлатежки.ДокументОснование) = Тип("ДокументСсылка.ЗарплатаКВыплатеОрганизаций") Тогда
                //    ВидОперацииДокумента = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеЗП;
                //Иначе
                    Если РеквизитыПлатежки.ВидДоговора = Перечисления.ВидыДоговоров.СПокупателем Тогда
                        ВидОперацииДокумента = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ВозвратПокупателю;
                    ИначеЕсли РеквизитыПлатежки.ВидДоговора = Перечисления.ВидыДоговоров.Прочее Тогда
                        ВидОперацииДокумента = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПрочиеРасчетыСКонтрагентами;
                    Иначе
                        ВидОперацииДокумента = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ОплатаПоставщику;
                    КонецЕсли;
                //КонецЕсли;
            //ИначеЕсли ПлатежиВБюджетКлиентСервер.РеквизитЗаполнен(СтрокаДокумента.СтатусСоставителя) Тогда
            //    ВидОперацииДокумента = УправлениеДенежнымиСредствами.ВидОперацииДокументаПеречисленияВБюджет(СтрокаДокумента.ПоказательКБК);
            ИначеЕсли СтрокаДокумента.Код = "0" Тогда
                ВидОперацииДокумента = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеНалога;
                ДДС = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеНалога;
            ИначеЕсли (ПоискБанковскогоСчета(СтрокаДокумента.ПолучательСчет).Владелец=БанковскийСчет.Владелец) Тогда
                ВидОперацииДокумента = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПереводНаДругойСчет;
                ДДС = СокрЛП(Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПереводНаДругойСчет);

            ИначеЕсли ЭтоКомиссияБанка(СтрокаДокумента) Тогда
                ВидОперацииДокумента = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПрочееСписание;
                ДДС = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПрочееСписание;
            ИначеЕсли Найти(СтрокаДокумента.НазначениеПлатежа, "Заработная плата") > 0 Тогда
                ВидОперацииДокумента = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеЗП;
                 ДДС = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеЗП;

            Иначе
                ВидОперацииДокумента = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ОплатаПоставщику;
                ДДС = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ОплатаПоставщику;
            КонецЕсли;
        Иначе // входящий платеж
            ВидОперацииДокумента = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя;
            ДДС = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя;

        КонецЕсли;
        
        

        СтрокаДокумента.ВидОперации = ВидОперацииДокумента;
          //СтрокаДокумента.СтатьяДДС = Тип("Перечисления.ВидыОперацийСписаниеДенежныхСредств");
        //Переч= Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеЗП;
        //ИндексЗначения = Перечисления.ВидыОперацийСписаниеДенежныхСредств.Индекс(Переч);
        //ДДС = Метаданные.Перечисления.ВидыОперацийСписаниеДенежныхСредств.ЗначенияПеречисления[ИндексЗначения].Имя;
        //ДДС= Строка(Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеЗП);
        СтрокаДокумента.СтатьяДДС = ДДС;
    Иначе
        ВидОперацииДокумента = СтрокаДокумента.ВидОперации;
        ДДС =  СтрокаДокумента.СтатьяДДС;
    КонецЕсли;


вот вся процедура .Это внешняя обработка загрузки выписок.
в зависимости от вида операции. устанавливается соответствующая статьяДДС.
36 Масянька
 
16.05.17
11:31
(35) Шайбу! Шайбу! (тьфу, картинку).
37 h-sp
 
16.05.17
11:33
(35) а здесь???    

Иначе
        ВидОперацииДокумента = СтрокаДокумента.ВидОперации;
        ДДС =  СтрокаДокумента.СтатьяДДС;
    КонецЕсли;

где у тебя присваивание

СтрокаДокумента.СтатьяДДС

нету. Голова- два уха.
38 Marry04
 
16.05.17
11:37
39 Marry04
 
16.05.17
11:39
(37) даже если закоментить это, все равно не определен тип
40 Масянька
 
16.05.17
11:40
(38) Феерично...
А можно картинку: просто конфигуратор, форма этого документа, свойство строки документа СтатьяДДС?
41 AlvlSpb
 
naïve
16.05.17
11:41
(38) Вам же в (37) прямо указали. Т.е. если ЗначениеЗаполнено (ВидОперации) - (не выполняется первое Если), то СтрокаДокумента.СтатьяДДС никак не определена. А если она не запонена?
42 Marry04
 
16.05.17
11:43
43 Масянька
 
16.05.17
11:46
(42) Вот там, где "Строка" (подсвечено синим) выбрать из списка "Перечисления.ВидыОперацийСписаниеДенежныхСредств".
Не?
44 AlvlSpb
 
naïve
16.05.17
11:50
(42) Так поле называется ВидДДС а не СтатьяДДС. Или вы что-то не то показали
45 Marry04
 
16.05.17
11:54
(44) в строке документа нет такого поля "ВидДДС"
46 ГдеСобака Зарыта
 
16.05.17
12:07
Ну все, народ без хлеба останется. Надеюсь хоть пекарня не одна на все село?
47 Marry04
 
16.05.17
12:11
(46) одна)))
спасайте народ. не понимаю.Для поля вид операции все устанавливается..а для статьиДДС не хочет..
48 h-sp
 
16.05.17
12:19
(47) вы нормально сделайте, не через задницу. Чтобы во всех ветках

Иначе и иначеЕсли присваивалось СтатьяДДС. Почему вы только в одном месе присвоили?
49 Масянька
 
16.05.17
12:24
(47) В типовом клиент-банке - Статья ДДС это Справочник.СтатьиДвиженияДенежныхСредств.
Стоит уйти из пекарни... Пока народ не потравился.
50 Marry04
 
16.05.17
13:01
(49) согласна, тут все решили сделать по "не типовому"))
51 catena
 
16.05.17
13:16
Поле с типом "Строка" не может самостоятельно принимать значение "Неопределено". Варианты:
1. Присваиваете не туда, куда смотрите.
2. Переопределяете где-то в коде.
3. Кэш...
52 AlvlSpb
 
naïve
16.05.17
20:40
(0) Так чем все закончилось? Любопытство мучает, в чем была причина?
53 Marry04
 
17.05.17
05:25
(52) пока ничем. в процессе
54 Marry04
 
17.05.17
05:57
(52) у меня такое ощущение, что это абсолютно не та переменная (СтатьяДДС). Я ей указала составной тип данных.  когда смотрю при отладке -  значение Неопределено и выбор типа данных (из табло выражений) - Строка, Число,Дата,Булево.
55 Масянька
 
17.05.17
07:59
(54) Ломать - не строить (С)
56 AlvlSpb
 
naïve
17.05.17
09:22
(54) Что говорит отладчик на первую строку кода
Если Не ЗначениеЗаполнено(СтрокаДокумента.ВидОперации) Тогда
Истина или Ложь?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший