Имя: Пароль:
1C
1С v8
Условие если значение колонки СчетЗатратБУ равен определенному счету
0 Alginsky
 
04.02.17
21:27
Конфигурация: Бухгалтерия для Казахстана 2.0
Не могу написать условие для Колонки СчетЗатратБУ табличной части.
Сделал новые движения в документе СписаниеТоваров и он должен выполнятся если только СчетЗатратБУ равен счету "2410"(Основные средства) например.
Вроде как простое условие но что то не получается
СписаниеТоваров.Товары.СчетЗатратБУ
1 jsmith82
 
04.02.17
21:39
>>но что то не получается
Код есть?
2 Alginsky
 
04.02.17
21:48
(1) Процедура ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, Отказ, Заголовок);
    
    УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(ТаблицаПоТоварам, ИСТИНА, СтруктураШапкиДокумента.НеобходимостьОтраженияВНУ, Отказ);
    
    Если Не Отказ  и
        СтруктураШапкиДокумента.УчитыватьНДС и СтруктураШапкиДокумента.КорректироватьНДС Тогда            
        
        ТаблицаКорректировки = ПодготовитьТаблицуПоКорректировкеНДС(ТаблицаПоТоварам);
        ДвиженияРегистровПодсистемыНДС(СтруктураШапкиДокумента, ТаблицаКорректировки, Отказ, Заголовок);
        ДвиженияПоНДСРегл(ТаблицаКорректировки, СтруктураШапкиДокумента);        
    КонецЕсли;
    
//********Добавлено
    Если ЭтотОбъект.Товары.Колонки.СчетУчетаБУ.Код = 2410 Тогда
    ДатаДока                       = Дата;
    ТекОрганизация                = СтруктураШапкиДокумента.Организация;
    ТекСтруктурноеПодразделение = СтруктураШапкиДокумента.СтруктурноеПодразделение;
    
    ОперацииОС             = Движения.СобытияОСОрганизаций;
    ПараметрыАмортизацииОС = Движения.ПараметрыАмортизацииОСБухгалтерскийУчет;
    ПроводкиБУ             = Движения.Типовой;
    ПроводкиНУ             = Движения.Налоговый;
    
    ТаблицаТекМестонахождение = Новый ТаблицаЗначений;
    ВедетсяАналитУчетОсПоПодразделениям = УправлениеВнеоборотнымиАктивами.ВедетсяАналитическийУчетОСПоПодразделениям(СтруктураШапкиДокумента.Дата);
    ВедетсяАналитУчетОсПоМОЛ = УправлениеВнеоборотнымиАктивами.ВедетсяАналитическийУчетОСПоМОЛ(СтруктураШапкиДокумента.Дата);

    Для каждого СтрокаТЧ Из Товары Цикл

        ТекОС = СтрокаТЧ.СубконтоЗатратБУ1;

        // Движения по регистру СобытияОСОрганизаций
        Движение = ОперацииОС.Добавить();
        Движение.Период                     = ДатаДока;
        Движение.ОсновноеСредство           = ТекОС;
        Движение.Организация              = ТекОрганизация;
        Движение.СтруктурноеПодразделение = ТекСтруктурноеПодразделение;
        Движение.Событие                    = СтруктураШапкиДокумента.СобытиеОС;
        Движение.НазваниеДокумента          = Строка(СтруктураШапкиДокумента.Ссылка.Метаданные());
        Движение.НомерДокумента             = СтруктураШапкиДокумента.Номер;
        
        // Движения по регистру ПараметрыАмортизации
        Движение = ПараметрыАмортизацииОС.Добавить();
        Движение.Период                                      = ДатаДока;
        Движение.ОсновноеСредство                            = ТекОС;
        Движение.Организация                                 = ТекОрганизация;
        Движение.СтруктурноеПодразделение                    = ТекСтруктурноеПодразделение;
        Движение.СрокПолезногоИспользования                  = СтрокаТЧ.СрокПолезногоИспользованияБУ;
        Движение.СрокИспользованияДляВычисленияАмортизации   = СтрокаТЧ.СрокПолезногоИспользованияБУ - СтрокаТЧ.ФактСрокИспользованияБУ;
        Движение.СтоимостьДляВычисленияАмортизации           = СтрокаТЧ.СтоимостьБУ + (СтрокаТЧ.СуммаМодернизацииБУ * СтрокаТЧ.Количество);
        Движение.КоэффициентАмортизации                      = СтрокаТЧ.КоэффициентАмортизацииБУ;
           Движение.ЛиквидационнаяСтоимость                     = СтрокаТЧ.ЛиквидационнаяСтоимостьБУ;
        
        // отнесение сумм модернизации на ОС Дт 2410 Кт 2933
        СуммаПроводки = СтрокаТЧ.СуммаМодернизацииБУ;
          
    КонецЦикла;
    КонецЕсли;
//************    
КонецПроцедуры // ДвиженияПоРегистрам()

На колонку ругается
Это один из вариантов условии. Пробовал запросом вытащить тоже не то
3 Lexey_
 
04.02.17
21:58
(2) что значит "На колонку ругается"?
4 Alginsky
 
04.02.17
22:00
(3) Поле объекта не обнаружено "Колонка"
5 Lexey_
 
04.02.17
22:02
(4) код из (2) не имеет никакого отношения к ошибке
6 Alginsky
 
04.02.17
22:02
Если убрать колонку и запросить ЭтотОбъект.Товары.СчетУчетаБУ.Код = 2410 то он напишет поле объекта не обнаружено "СчетУчетаБУ"
7 Alginsky
 
04.02.17
22:03
(5) //********Добавлено

    Если ЭтотОбъект.Товары.Колонки.СчетУчетаБУ.Код = 2410 Тогда

Вот это условие имеет отношение к ошибке
8 Lexey_
 
04.02.17
22:04
(6) СчетУчетаБУ какой строки ты хочешь проверить?
(7) у табличной части нет колонок
9 Alginsky
 
04.02.17
22:08
(8) ну там одну строку на пока. потом циклом сделаю по всем строкам
10 Lexey_
 
04.02.17
22:08
(9) какую?
ЭтотОбъект.Товары.СчетУчетаБУ.Код = 2410 здесь ни слова про твою строку
11 Alginsky
 
04.02.17
22:12
(10) А как правильно запросить значение? там у меня одна строка вот с нее надо проверить
12 Lexey_
 
04.02.17
22:14
(11) получить строку можно либо в цикле "Для каждого", либо по индексу: Товары[ИндексСтроки]
13 Alginsky
 
04.02.17
22:25
(12) что то не контачит у меня))  так как запросить значение СчетЗатратБУ и сравнить его в условии. Индекс наверное "0" если там только одна строка
14 Lexey_
 
04.02.17
22:26
(13) да, индекс первой строки 0
15 h-sp
 
04.02.17
22:33
(13) Товары[0]
16 Alginsky
 
04.02.17
22:57
Поле объекта не обнаружено (Индекс)
Если ЭтотОбъект.Товары.Индекс[0].СчетЗатратБУ = 2410 Тогда
Я какой то бредовый код пишу))
17 Lexey_
 
04.02.17
23:07
(16) издеваешься? см (15)
18 Alginsky
 
04.02.17
23:12
(17) ну а как правильно напишите пожалуйста если не сложно?
19 Lexey_
 
04.02.17
23:19
(18) в (15) же написали
20 Alginsky
 
04.02.17
23:54
(19) Спасибо. работает
Строка = ЭтотОбъект.Товары[0];
    Если Строка.СчетЗатратБУ.Код = "2410" Тогда