Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Помогите разобраться пожалуйста

v7: Помогите разобраться пожалуйста
Я
   max805
 
24.01.13 - 04:04
Есть документ ПеремещениеТМЦ в табличную часть добавил колонку "Заказ" все работает то что нужно но есть трабла как сделать так что бы с помощью подбора номенклатуры количество попадало не в колонку "количество" (по умолчанию) а в колонку "Заказ" Заранее спасибо
 
 
   КонецЦикла
 
1 - 24.01.13 - 04:10
поменять обработку подбора в глобальнике
   max805
 
2 - 24.01.13 - 04:10
это понятно. но тогда заденет все документы 
а нужно тока в одном
   КонецЦикла
 
3 - 24.01.13 - 04:11
Ну так условие на Вид() поможет?
   max805
 
4 - 24.01.13 - 04:14
Процедура глОбработкаПодбора(Конт, ВыбЗнач, ЕстьЦена, ЕстьНДС, ЕстьНП, ЕстьСкидка, ЕстьВидТМЦ)  Экспорт
    Перем ТаблЧасть;
    
   // Инициалищзация переменных
 
    ФлагиИзТипаЦен = 0;
    ЦенаВклНП      = 1;
    ЦенаВклНДС     = 1;
    УчитыватьНП    = ЕстьНП;
    УчитыватьНДС   = ЕстьНДС;
    Если ЕстьЦена = 1 Тогда
            
       // Флаги включения налогов в сумму определяеются типом цен, 
 
       // кроме случая перемещения из розницы (цены в этом случае берутся из регистра с налогами)
 
        ФлагиИзТипаЦен = 1;
        Если Конт.Вид() = "ПеремещениеТМЦ" Тогда 
            Если Конт.Склад.РозничныйСклад = 1 Тогда
                ФлагиИзТипаЦен = 0;
            КонецЕсли;
        КонецЕсли;
        ФлагиИзТипаЦен = ФлагиИзТипаЦен * глЕстьРеквизитШапки("ТипЦен", Конт.Вид());
        
        Если ФлагиИзТипаЦен  = 1 Тогда 
            
           // Подбирали по ценам с налогами, заданными в типе цен
 
            ЦенаВклНП  = Конт.ТипЦен.ЦенаВклНП;
            ЦенаВклНДС = Конт.ТипЦен.ЦенаВклНДС; 
            
        Иначе// считаем, что подбирали в соответствии с флагами в документе
 
            
           // По умолчанию считаем, что если нет в документе флагов учета налогов, 
 
           // то цена со всеми налогами (как в рознице)
 
            Если глЕстьРеквизитШапки("СуммаВклНП", Конт.Вид()) = 1 Тогда
                ЦенаВклНП   = Конт.СуммаВклНП;
            КонецЕсли;    
        
            Если глЕстьРеквизитШапки("СуммаВклНДС", Конт.Вид()) = 1 Тогда
                ЦенаВклНДС  = Конт.СуммаВклНДС;
            КонецЕсли;    
        КонецЕсли;    
        
       // Выкручивать или накручивать налоги надо только если они в документе учитываются
 
        Если глЕстьРеквизитШапки("УчитыватьНП", Конт.Вид()) = 1 Тогда
            УчитыватьНП = ЕстьНП * Конт.УчитыватьНП;
        КонецЕсли;    
        
        Если глЕстьРеквизитШапки("УчитыватьНДС", Конт.Вид()) = 1 Тогда
            УчитыватьНДС = ЕстьНДС * Конт.УчитыватьНДС;
        КонецЕсли;    
        
    КонецЕсли;
    
    ТипЗнач        = ТипЗначенияСтр(ВыбЗнач);
    Если ТипЗнач = "ТаблицаЗначений" Тогда
        ВыбЗнач.ВыбратьСтроки();
        
        Конт.ВыгрузитьТабличнуюЧасть(ТаблЧасть, "Номенклатура, Единица, НомерСтроки");
        
        ТаблЧасть.НоваяКолонка("Индекс");
        ТаблЧасть.ВыбратьСтроки();
        
        Пока ТаблЧасть.ПолучитьСтроку() = 1 Цикл
            ТаблЧасть.Индекс = ТаблЧасть.Номенклатура.Код + ТаблЧасть.Единица.Океи.Код;
        КонецЦикла;
        
        Пока ВыбЗнач.ПолучитьСтроку() <> 0 Цикл
            Номенклатура = ВыбЗнач.Номенклатура;
            Индекс = Номенклатура.Код + Номенклатура.ОсновнаяЕдиница.Океи.Код;
           // поищем номенклатуру
 
            Поз = 0;
            Если ТаблЧасть.НайтиЗначение(Индекс, Поз, "Индекс") = 1 Тогда
               // нашли, увеличиваем количество
 
                Конт.ПолучитьСтрокуПоНомеру(Поз);
                Конт.Количество = Конт.Количество + ВыбЗнач.Количество;
                
               // Вызывать пересчет имеет смысл только если есть цена
 
                Если ЕстьЦена = 1 Тогда
                    глПересчетТаблЧасти(Конт,"Количество");            
                КонецЕсли;
            Иначе
               // добавляем новую строку
 
            
                Конт.НоваяСтрока();
                Если ЕстьВидТМЦ = 1 Тогда
                    Конт.ВидТМЦ = ВыбЗнач.ВидТМЦ;
                    Если Конт.Вид()="ПоступлениеТМЦ" Тогда Конт.ВидТМЦ=Перечисление.ВидыТМЦ.Товар;КонецЕсли;
                КонецЕсли;
                
                Конт.Номенклатура = Номенклатура;
                Конт.Количество   = ВыбЗнач.Количество;
                Конт.Единица      = Номенклатура.ОсновнаяЕдиница;
                Конт.Коэффициент  = Конт.Единица.Коэффициент;    
                
                Если ЕстьНДС = 1 Тогда
                    Конт.СтавкаНДС = Номенклатура.СтавкаНДС;
                КонецЕсли;    
                
                Если ЕстьНП= 1 Тогда
                    Конт.СтавкаНП  = Номенклатура.СтавкаНП;
                КонецЕсли;    
                
                Если ЕстьЦена = 1 Тогда
                        
                    глПересчитатьЦенуВДокументе(Конт, УчитыватьНП, УчитыватьНДС, ВыбЗнач.Цена, Конт.Валюта, 
                                                ЦенаВклНП, ЦенаВклНДС);
                    глПересчетТаблЧасти(Конт,"Цена");            
                    
                КонецЕсли;
                
            КонецЕсли;
            
        КонецЦикла;
        
    КонецЕсли;
    Если Конт.Вид()="Реализация" Тогда
    Иначе
        Конт.Форма.Обновить(0);
    КонецЕсли;
КонецПроцедуры// глОбработкаПодбора()
   max805
 
5 - 24.01.13 - 04:15
это обработка подбора где нужно поставить значение "заказ" никак не пойму?
   Godofsin
 
6 - 24.01.13 - 04:25
Конт.НоваяСтрока();
                Если ЕстьВидТМЦ = 1 Тогда
                    Конт.ВидТМЦ = ВыбЗнач.ВидТМЦ;
                    Если Конт.Вид()="ПоступлениеТМЦ" Тогда Конт.ВидТМЦ=Перечисление.ВидыТМЦ.Товар;КонецЕсли;
                КонецЕсли;
                
                Конт.Номенклатура = Номенклатура;
                Конт.Количество   = ВыбЗнач.Количество;
                Конт.Единица      = Номенклатура.ОсновнаяЕдиница;
                Конт.Коэффициент  = Конт.Единица.Коэффициент;
   КонецЦикла
 
7 - 24.01.13 - 04:26
Вот это место

Если ТаблЧасть.НайтиЗначение(Индекс, Поз, "Индекс") = 1 Тогда
               // нашли, увеличиваем количество
 
 
                Конт.ПолучитьСтрокуПоНомеру(Поз);
                Конт.Количество = Конт.Количество + ВыбЗнач.Количество;
                
               // Вызывать пересчет имеет смысл только если есть цена
 
 
                Если ЕстьЦена = 1 Тогда
                    глПересчетТаблЧасти(Конт,"Количество");            
                КонецЕсли;
            Иначе
               // добавляем новую строку
 
 
            
                Конт.НоваяСтрока();
                Если ЕстьВидТМЦ = 1 Тогда
                    Конт.ВидТМЦ = ВыбЗнач.ВидТМЦ;
                    Если Конт.Вид()="ПоступлениеТМЦ" Тогда Конт.ВидТМЦ=Перечисление.ВидыТМЦ.Товар;КонецЕсли;
                КонецЕсли;
                
                Конт.Номенклатура = Номенклатура;
                Конт.Количество   = ВыбЗнач.Количество;
                Конт.Единица      = Номенклатура.ОсновнаяЕдиница;
                Конт.Коэффициент  = Конт.Единица.Коэффициент;    

Вот так наверное:

Если Конт.Вид() = "ПеремещениеТМЦ" Тогда
Конт.Заказ = Конт.Заказ+ ВыбЗнач.Количество;
Иначе
Конт.Количество = Конт.Количество + ВыбЗнач.Количество;
КонецЕсли;

 //....
 

Если Конт.Вид() = "ПеремещениеТМЦ" Тогда
Конт.Заказ = ВыбЗнач.Количество;
Иначе
Конт.Количество   = ВыбЗнач.Количество;
КонецЕсли;
   max805
 
8 - 24.01.13 - 04:46
спасибо получилось

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует