Имя: Пароль:
1C
1C 7.7
v7: Поменять МОЛ склада в ТиС
,
0 Duke1C
 
10.07.18
20:23
Серёга Злопчинский и иже с ними (в смысле гуру) подскажите, плиз.
Если меняем в справочнике складов МОЛа, на регистре ПартииНаличие это как отразиться?
"Себестоимость" останется на пердыдущем МОЛе, и её надобно будет "как-то переместить" на нового, или "НоуПроблем"?
Сдаётся мне, что траблы будут некоторые (некоторые, читай во многих неожиданных местах потом)
1 HawkEye
 
10.07.18
20:32
(0) "Себестоимость" останется на пердыдущем МОЛ
2 GreyK
 
10.07.18
20:35
(0) От МОЛа никакие регистры не зависят, этот реквизит только в печатных формах используется.
3 GreyK
 
10.07.18
20:37
(1) Злой ты, зачем пишешь ерунду и пугаешь юзверей?
4 Злопчинский
 
10.07.18
20:39
(2) МОЛ - измерение в Регистр.ПартииНаличие.
так что если поменять МОЛа в карточке склада, то будет разрыв шаблона. Хотя надо глянуть в код - с какого мола будут списываться стоимости...
5 Злопчинский
 
10.07.18
20:40
если у вас формально никакой передачи ТМЦ от МОЛа к Молу не происходило - просто открой карточку МОЛа и перебей в ней Иванова на Петрова (если иванов больше по базе нигде не используется)
6 GreyK
 
10.07.18
20:44
(4) Посмотрел регистр ПартииНаличие, да так и есть, извиняюсь.
7 HawkEye
 
10.07.18
20:45
(2) не трынди... в ТИС-е всю жизнь МОЛы в партиях сидят....
8 Злопчинский
 
10.07.18
20:47
глянул, как и есть:
При списании партий с баланса ставится фильтр на чтение итогов по МОЛу склада, указанного в документе.

Соответственно, остатки будут тянуться по новому МОЛу, на нем ничего нет... при проведении получишь типа "..не распределилось по партиям.."
9 GreyK
 
10.07.18
20:48
(7) Не думал что такая ерунда может быть в 7.7, это же конкретная подстава конфигурации ТИС.
10 Злопчинский
 
10.07.18
20:49
Если сделать как (2) хотит - то отключить установку фильтра по молу при списании партий и все...
11 Злопчинский
 
10.07.18
20:49
(9) всю жизнь так было, даже по моему в 8-ой редакции
12 HawkEye
 
10.07.18
20:52
(9) при чем тут думал... так в ТиС-е всю жизнь было...
13 GreyK
 
10.07.18
20:53
(11) "всю жизнь так было" не оправдание дебелизма с привязкой партии к МОЛ.
14 GreyK
 
10.07.18
20:53
(12) Зачем это было?
15 Злопчинский
 
10.07.18
20:54
(14) кому это не надо - тот МОЛа в справочнике складов не заполняет и все.
16 GreyK
 
10.07.18
21:02
(15) А кому надо зачем это надо было :)
Мой совет. Прочистить партии от МОЛов и заремить установку МОЛа в партиях.
17 Duke1C
 
10.07.18
21:03
(15) ВОТ!
Я думал, память мне изменяет, но оказывается она пока еще при мне:)))
К тому же еще один вопросик, если ни на одном складе МОЛа не указывать - регистр меньше будет пухнуть? Т.е. тупо измерение МОЛ будет одно, соответственно и записей в него будет меньше, или тут я не прав?
P.S. На ночь глядя, что-то думается сложно, а коллективный разум он жеж всегда в тонусе:)))
18 Kigo_Kigo
 
10.07.18
21:05
Очень удобно по молу делать аналитику по складам, так как в партиях складов нет, а вот по молу можно все посметреть
19 Kigo_Kigo
 
10.07.18
21:06
+(18) всегда их заполнял но в виде МОЛ Основного склада, МОЛ розничная точка и так далее
20 Duke1C
 
10.07.18
21:08
(18) Ну там же МОЛ - справочник ФизЛица, и соответственно у юзера жгучее желание поменять его, с одного на другое
21 Злопчинский
 
10.07.18
21:08
(17) да
22 Злопчинский
 
10.07.18
21:09
(18) так обычно и делают. в качестве МОЛОв вводят "склады"
23 GreyK
 
10.07.18
21:10
(18) Если что, то в партии есть документ оприходования, а в нем есть склад оприходования.
24 Duke1C
 
10.07.18
21:11
+20 И он, бедолага, не знает, чем это чревато, не говоря уже о последствиях из (8)
25 Kigo_Kigo
 
10.07.18
21:13
(20) Смена МОЛ - по идее стандарная операция, МОЛ может меняться раз в месяц, не может кладовщик вечно работать, по этому проблем быть не должно, тем более все идет по FIFO значит если не сделать передачу по МОЛ-у то спишуться партии по старому МОЛ потом пойдут по новому, по сути это запись в регистре также как и номенклатура
26 Duke1C
 
10.07.18
21:14
+24 А хотя, с точки зрения остатков склада, вроде как ничего не изменилось (по регистру ОстаткиТМЦ, откуда они в форму подбора номенклатуры тащатся, например), но в тоже время себестоимость уплыла в неизвестном направлении, так?
27 Duke1C
 
10.07.18
21:17
(25) Стандартная, с точки зрения юзера, я же смотрю со стороны, как оно "там унутре" будет потом происходить.
28 Kigo_Kigo
 
10.07.18
21:30
(27)  Посмотрел код  глСписаниеПартийТМЦ
Там сначала идет получение итогов гда МОЛ заходит из регистров, потом если не рапределяеться по партиям то записи идкт как  МОЛ  = Склад.МОЛ, так что все должно работать как надо
29 GreyK
 
10.07.18
21:38
Итог часовой дискуссии, от изменения мола ничего не изменится, партии будут списываться по настройкам, а информация о МОЛ в регистре ПартииНаличие побоку.
30 spectre1978
 
10.07.18
21:40
(29) Если в неправленной ТиС или комплексной четверке мол заполнялся и возьметесь его менять - получите грабли. Чреватые перепроведением всех доков по складу. Я бы не стал.
31 spectre1978
 
10.07.18
21:41
не раз приходилось видеть раздрюченный регистр партий после того как умный бухгалтер сменил уволенного мола в складе
32 Kigo_Kigo
 
10.07.18
21:43
(30) Да,перед сменой мола границу последовательности лучше восстановить, то что МОЛ не переодический реквизит -тоже косяк типовой 1с, хотя глобально никаких граблей не будет, потому как встанет другой МОЛ, спишется Другой МОЛ, и что?
33 Kigo_Kigo
 
10.07.18
21:45
(31) Если последовательность ввода не нарушена - то раздрюченных партий не должно быть, а вот если нарушена, то сами  себе злобные буратинА...
34 GreyK
 
10.07.18
21:47
(30) Посмотрите модуль проведения документов реализаций и списания в конце концов, хватит пороть чушь, там нет отбора по МОЛ, есть лишь разница в ФИФО, ЛИФО и по среднему.
Хорош уже сову на глобус натягивать.
35 Злопчинский
 
10.07.18
21:49
(25) (28) неверно. Мол заходит из регистров на списание, только сначала на регистр ставиться фильтр ПО ТЕКУЩЕМУ МОЛУ.
36 Злопчинский
 
10.07.18
21:50
(34) "там нет отбора по МОЛ"
- есть
37 spectre1978
 
10.07.18
21:51
(34) Там это не надо даже смотреть. Можно тупо посмотреть движения при проведении поступлений и реализаций. МОЛ - ЗАПОЛНЯЕТСЯ! А раз так, то вполне возможна ситуация, когда партию образовал один МОЛ, а списывать будет другой. С нулевых остатков, скорее всего.
38 Duke1C
 
10.07.18
21:52
(33) Ну, как бы, восстановление последовательности в типовой ТиС - есть один из залогов (наиважнейших) её успешной работы, иначе грабли заострёныые и без поролоновой накладки на черенок обеспечены по-любому.
Мне просто было интересно (любопытно, нужно выяснить - сие более правдиво) скажется смена МОЛа на учете себестоимости или нет.
39 Kigo_Kigo
 
10.07.18
21:53
(36) нет
40 Kigo_Kigo
 
10.07.18
21:55
(36) покажешь где?

Процедура глСписаниеПартийТМЦ(Конт,ТаблНоменклатуры,СписокПараметров,ВремПартии,ТаблСписПартий="",ТаблСписПартийКом="") Экспорт
    
    Перем ТаблИтогов; // ТЗ, в которую выгружаем итоги      
    Перем ОстПогКоличество, ОстПогСумма, ОстПогСуммаПродУпр, ОстПогСуммаПродРуб, ОстПогСуммаНДС, ОстПогСуммаНП;
    
    ТаблСписПартий=СоздатьОбъект("ТаблицаЗначений");
    ТаблСписПартий.НоваяКолонка("Фирма");
    ТаблСписПартий.НоваяКолонка("МОЛ");
    ТаблСписПартий.НоваяКолонка("Номенклатура");
    ТаблСписПартий.НоваяКолонка("СтатусПартии");
    ТаблСписПартий.НоваяКолонка("Партия");
    ТаблСписПартий.НоваяКолонка("ДатаПартии");
    ТаблСписПартий.НоваяКолонка("ЦенаПрод");
    ТаблСписПартий.НоваяКолонка("Количество");
    ТаблСписПартий.НоваяКолонка("СуммаУпр");
    ТаблСписПартий.НоваяКолонка("СуммаРуб");
    ТаблСписПартий.НоваяКолонка("СуммаБезНДС");
    ТаблСписПартий.НоваяКолонка("СтавкаНДС");
    ТаблСписПартий.НоваяКолонка("СтавкаНП");
    ТаблСписПартий.НоваяКолонка("СуммаПрод");
    ТаблСписПартий.НоваяКолонка("СуммаПродРуб");
    ТаблСписПартий.НоваяКолонка("СуммаПродУпр");
    ТаблСписПартий.НоваяКолонка("СуммаДокРуб");
    ТаблСписПартий.НоваяКолонка("НДСПрод");
    ТаблСписПартий.НоваяКолонка("НППрод");
    ТаблСписПартий.НоваяКолонка("ДоговорКомитента");
    ТаблСписПартий.НоваяКолонка("НомерСтрокиДокумента");
    ТаблСписПартий.НоваяКолонка("СкидкаРуб");
    
    ТаблСписПартийКом=СоздатьОбъект("ТаблицаЗначений");
    ТаблСписПартийКом.Загрузить(ТаблСписПартий); // копируем структуру
    
    РегистрУчета = ВремПартии.Вид();      
    
    Если РегистрУчета="ПартииНаличие" Тогда
        РегПартии    = Конт.Регистр.ПартииНаличие;
    Иначе    
        РегПартии    = Конт.Регистр.ПартииОтданные;
    КонецЕсли;
    
    Фирма            = СписокПараметров.Получить("Фирма");
    Склад            = СписокПараметров.Получить("Склад");
    Договор            = СписокПараметров.Получить("Договор");
    КодОперации        = СписокПараметров.Получить("КодОперации");
    
    Если РегистрУчета="ПартииНаличие" Тогда
        МОЛ            = Склад.МОЛ;
    КонецЕсли;
              
    МетодРасчетаСебестоимости = Фирма.ЮрЛицо.МетодРасчетаСебестоимости.Получить(Конт.ДатаДок);
    Если ПустоеЗначение(МетодРасчетаСебестоимости)=1 Тогда
        глНеПроводить(Конт,"Не определен метод расчета себестоимости для юр. лица """+Фирма.ЮрЛицо.Наименование+"""");
        Возврат;
    КонецЕсли;
    
    Если МетодРасчетаСебестоимости = Перечисление.МетодыРасчетаСебестоимости.FIFO Тогда
        ЗнакСортировки="+";
    Иначе    
        ЗнакСортировки="-";
    КонецЕсли;
    
    ТаблНоменклатуры.ВыбратьСтроки();
    Пока ТаблНоменклатуры.ПолучитьСтроку()=1 Цикл
                      
        Номенклатура=ТаблНоменклатуры.Номенклатура;
        Если (Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Услуга)
         или (Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Работа) Тогда
            Продолжить;
        КонецЕсли;
        
        ОстПогКоличество    = ТаблНоменклатуры.Количество;
        ОстПогСуммаПрод        = ТаблНоменклатуры.Сумма;
        ОстПогСуммаПродУпр    = ТаблНоменклатуры.СуммаУпр;
        ОстПогСуммаПродРуб    = ТаблНоменклатуры.ПродСтоимость;  
        ОстПогСуммаДокРуб    = ТаблНоменклатуры.СуммаРуб;
        ОстПогСкидкаРуб        = ТаблНоменклатуры.СкидкаРуб;  
        ОстПогНДСПрод        = ТаблНоменклатуры.СуммаНДС;
        ОстПогНППрод        = ТаблНоменклатуры.СуммаНП;
        
        ВремПартии.УстановитьЗначениеФильтра("Номенклатура",Номенклатура,1);
        Если ТаблНоменклатуры.Партия.Выбран()=1 Тогда
            // выбрана конкретная партия
            ВремПартии.УстановитьЗначениеФильтра("Партия",ТаблНоменклатуры.Партия,1);
        Иначе // снимем фильтр по партии
            ВремПартии.УстановитьЗначениеФильтра("Партия",,0);
        КонецЕсли;                  

        Если РегистрУчета = "ПартииНаличие" Тогда
            Цена = ТаблНоменклатуры.ЦенаПрод;
            ВремПартии.УстановитьЗначениеФильтра("ЦенаПрод", Цена);
        КонецЕсли;    
        
        ВремПартии.ВыгрузитьИтоги(ТаблИтогов,1,1);  
        
        ТаблИтогов.НоваяКолонка("ДокПартии", "Документ");
        ТаблИтогов.ВыбратьСтроки();
        Пока ТаблИтогов.ПолучитьСтроку() = 1  Цикл
            ТаблИтогов.ДокПартии = ТаблИтогов.Партия.ПриходныйДокумент;
        КонецЦикла;
        
        // Подготовим таблицу итогов взависимости от настройки контроля остатков
        ПодготовитьТаблИтогов(ТаблИтогов, Фирма);
        
        Если РегистрУчета = "ПартииНаличие" Тогда
            ТаблИтогов.Сортировать("-Фирма,"+ЗнакСортировки+"ДатаПартии,"+ЗнакСортировки+"ДокПартии,"+ЗнакСортировки+"Партия",1);
        Иначе
            ТаблИтогов.Сортировать("-Фирма,"+ЗнакСортировки+"ДокументПередачи,"+ЗнакСортировки+"Партия",1);
        КонецЕсли;
        
        ТаблИтогов.ВыбратьСтроки();
        Пока (ТаблИтогов.ПолучитьСтроку()=1) и (ОстПогКоличество>0) Цикл
            
            Если ТаблИтогов.Количество<=0 Тогда
                Продолжить;
            КонецЕсли;                                    
            
            Если КодОперации = глКО.ВозвратКомитенту Тогда

                // возвращаем товары комитенту - только его товары!
                Если ТаблИтогов.Партия.ДоговорПоставщика<>Договор Тогда
                    Продолжить;
                КонецЕсли;

            КонецЕсли;              
            
            Если ТаблИтогов.Количество>=ОстПогКоличество Тогда

                // остаток партии больше, чем нам надо списать
                КоэффСписания=ОстПогКоличество/ТаблИтогов.Количество;

            Иначе
                КоэффСписания=1;
            КонецЕсли;
            
            //измерения
            РегПартии.Фирма                = Фирма;
            
            РегПартии.Номенклатура        = ТаблИтогов.Номенклатура;
            РегПартии.СтатусПартии        = ТаблИтогов.СтатусПартии;
            РегПартии.Партия            = ТаблИтогов.Партия;
            Если РегистрУчета="ПартииНаличие" Тогда
                РегПартии.ДатаПартии        = ТаблИтогов.ДатаПартии;
                РегПартии.МОЛ                = ТаблИтогов.МОЛ;      
                РегПартии.ЦенаПрод            = ТаблИтогов.ЦенаПрод;
            Иначе
                РегПартии.Договор            = ТаблИтогов.Договор;
                РегПартии.ДокументПередачи    = ТаблИтогов.ДокументПередачи;
            КонецЕсли;    
            
            //ресурсы
            РегПартии.Количество        = Окр(ТаблИтогов.Количество    *КоэффСписания,5,1);
            РегПартии.СуммаУпр            = Окр(ТаблИтогов.СуммаУпр    *КоэффСписания,2,1);
            РегПартии.СуммаРуб            = Окр(ТаблИтогов.СуммаРуб    *КоэффСписания,2,1);
            РегПартии.СуммаПлат            = Окр(ТаблИтогов.СуммаПлат    *КоэффСписания,2,1);
            РегПартии.СуммаБезНДС        = Окр(ТаблИтогов.СуммаБезНДС*КоэффСписания,2,1);
            Если РегистрУчета="ПартииОтданные" Тогда
                РегПартии.ПродСтоимость    = Окр(ТаблИтогов.ПродСтоимость*КоэффСписания,2,1);    
            КонецЕсли;
            
            //реквизиты
            РегПартии.КодОперации         = КодОперации;
                                                                  
            КоэффПогашения = РегПартии.Количество/ОстПогКоличество;
            
            // корректировка остатка продажной стоимости к списанию
            ОстПогКоличество=ОстПогКоличество-РегПартии.Количество;
            
            СписСуммаПрод    = Окр(ОстПогСуммаПрод    *КоэффПогашения,2,1);
            СписСуммаПродУпр= Окр(ОстПогСуммаПродУпр*КоэффПогашения,2,1);
            СписСуммаПродРуб= Окр(ОстПогСуммаПродРуб*КоэффПогашения,2,1);
            СписСуммаДокРуб    = Окр(ОстПогСуммаДокРуб *КоэффПогашения,2,1);
            СписСкидкаРуб    = Окр(ОстПогСкидкаРуб     *КоэффПогашения,2,1);
            СписНДСПрод        = Окр(ОстПогНДСПрод        *КоэффПогашения,2,1);
            СписНППрод         = Окр(ОстПогНППрод        *КоэффПогашения,2,1);
            
            ОстПогСуммаПрод        = ОстПогСуммаПрод    - СписСуммаПрод;
            ОстПогСуммаПродУпр     = ОстПогСуммаПродУпр- СписСуммаПродУпр;
            ОстПогСуммаПродРуб     = ОстПогСуммаПродРуб- СписСуммаПродРуб;
            ОстПогСуммаДокРуб     = ОстПогСуммаДокРуб    - СписСуммаДокРуб;
            ОстПогСкидкаРуб     = ОстПогСкидкаРуб    - СписСкидкаРуб;
            ОстПогНДСПрод        = ОстПогНДСПрод     - СписНДСПрод;
            ОстПогНППрод        = ОстПогНППрод         - СписНППрод;
            
            СтавкаНДС        = ТаблНоменклатуры.СтавкаНДС;
            СтавкаНП        = ТаблНоменклатуры.СтавкаНП;
                                                          
            Если РегистрУчета = "ПартииНаличие" Тогда  
                РегПартии.ПродСтоимость    = СписСуммаПродРуб;    
            КонецЕсли;
            
            Если (КодОперации <> глКО.Перемещение) и (КодОперации <> глКО.ПередачаВРозницу) и (КодОперации <> глКО.ВозвратИзРозницы)
               и (КодОперации <> глКО.ВозвратПоставщикуИзРозницы) Тогда
                РегПартии.Выручка    = Окр(СписСуммаПродРуб - СписНДСПрод - СписНППрод, 2, 1);
            
            ИначеЕсли КодОперации = глКО.ВозвратПоставщикуИзРозницы Тогда
                РегПартии.Выручка    = Окр(СписСуммаДокРуб - СписНДСПрод - СписНППрод, 2, 1);
                
            Иначе
                РегПартии.Выручка    = 0;
            КонецЕсли;

            ЗапомнитьСписаннуюПартию(РегПартии,ТаблСписПартий,СписСуммаПрод,СписСуммаПродУпр,СписСуммаПродРуб,СписНДСПрод,СписНППрод,СтавкаНДС,СтавкаНП, ТаблНоменклатуры.НомерСтрокиДокумента, СписСкидкаРуб, СписСуммаДокРуб);
            Если РегПартии.СтатусПартии=глСП.Т_Принятый Тогда
                ЗапомнитьСписаннуюПартию(РегПартии,ТаблСписПартийКом,СписСуммаПрод,СписСуммаПродУпр,СписСуммаПродРуб,СписНДСПрод,СписНППрод,СтавкаНДС,СтавкаНП, ТаблНоменклатуры.НомерСтрокиДокумента, СписСкидкаРуб, СписСуммаДокРуб);
            КонецЕсли;
            
            РегПартии.ПривязыватьСтроку(ТаблНоменклатуры.НомерСтрокиДокумента);
            
            РегПартии.ДвижениеРасходВыполнить();
        КонецЦикла; // по строкам ТаблИтогов
            
        
        Если ОстПогКоличество>0 Тогда
            // значит мы расходуем Номенклатуру
            // а Партии, которые надо погашать исчерпаны,
            // значит надо выдать сообщение об этом инциденте
            // и записать текущий документ как Партию с отриц. знаком
            Если ПустоеЗначение(ТаблНоменклатуры.Партия)=1 Тогда
                глСообщениеПроведения ("При проведении партий ТМЦ по "+Конт.ТекущийДокумент()+" от "+Конт.ДатаДок+" по ТМЦ "
                +СокрЛП(Номенклатура)+" не распределилось по партиям "+ОстПогКоличество+" "+Номенклатура.БазоваяЕдиница, Конт.ТекущийДокумент(),,,1);
            Иначе
                глСообщениеПроведения("По указанной к списанию партии ТМЦ """ + ТаблНоменклатуры.Партия.ПриходныйДокумент +
                """ по ТМЦ " +СокрЛП(Номенклатура) +
                ?(ПустоеЗначение(ТаблНоменклатуры.Партия.Свойство) = 1,"",
                  ", (" +  
                  СокрЛП(ТаблНоменклатуры.Партия.Свойство.Владелец) +  ": "  +
                  СокрЛП(ТаблНоменклатуры.Партия.Свойство) +")"
                  ) +  
                " не распределилось  "+ОстПогКоличество+" "+Номенклатура.БазоваяЕдиница, Конт.ТекущийДокумент(),,,1);
            КонецЕсли;
            
            //измерения
            РегПартии.Фирма                = Фирма;
            РегПартии.Номенклатура        = Номенклатура;
            РегПартии.СтатусПартии        = глПолучитьСтатусПартииПрихода(Перечисление.ВидыТМЦ.Товар,Номенклатура,КодОперации, Склад);
            РегПартии.Партия            = ПолучитьПустоеЗначение("Справочник.Партии");
            Если РегистрУчета="ПартииНаличие" Тогда
                РегПартии.ДатаПартии    = "";
                РегПартии.МОЛ            = МОЛ;                    
                РегПартии.ЦенаПрод        = ТаблНоменклатуры.ЦенаПрод;
                РегПартии.ПродСтоимость = ОстПогСуммаПродРуб;
                Если (КодОперации <> глКО.Перемещение) и (КодОперации <> глКО.ПередачаВРозницу) и (КодОперации <> глКО.ВозвратИзРозницы)
                   и (КодОперации <> глКО.ВозвратПоставщикуИзРозницы) Тогда
                    РегПартии.Выручка    = Окр(ОстПогСуммаПродРуб - ОстПогНДСПрод - ОстПогНППрод, 2, 1);
                
                ИначеЕсли КодОперации = глКО.ВозвратПоставщикуИзРозницы Тогда
                    РегПартии.Выручка    = Окр(ОстПогСуммаДокРуб - ОстПогНДСПрод - ОстПогНППрод, 2, 1);
                    
                Иначе
                    РегПартии.Выручка    = 0;
                КонецЕсли;
            Иначе
                РегПартии.Выручка           = Окр(ОстПогСуммаПродРуб - ОстПогНДСПрод - ОстПогНППрод, 2, 1);
                РегПартии.Договор           = Договор;
                РегПартии.ДокументПередачи = "";
            КонецЕсли;
            
            //ресурсы
            РегПартии.Количество        = ОстПогКоличество;
            РегПартии.СуммаУпр            = 0;
            РегПартии.СуммаРуб            = 0;
            РегПартии.СуммаПлат            = 0;
            РегПартии.СуммаБезНДС        = 0;
            Если РегистрУчета="ПартииОтданные" Тогда
                РегПартии.ПродСтоимость    = ОстПогСуммаПрод;
            КонецЕсли;
            
            //реквизиты  
            РегПартии.КодОперации         = КодОперации;
            
            СтавкаНДС        = ТаблНоменклатуры.СтавкаНДС;
            СтавкаНП        = ТаблНоменклатуры.СтавкаНП;
            
            ЗапомнитьСписаннуюПартию       (РегПартии,ТаблСписПартий,ОстПогСуммаПрод,ОстПогСуммаПродУпр,ОстПогСуммаПродРуб,ОстПогНДСПрод,ОстПогНППрод,СтавкаНДС,СтавкаНП, ТаблНоменклатуры.НомерСтрокиДокумента, ОстПогСкидкаРуб, ОстПогСуммаДокРуб);
            Если РегПартии.СтатусПартии=глСП.Т_Принятый Тогда
                ЗапомнитьСписаннуюПартию(РегПартии,ТаблСписПартийКом,ОстПогСуммаПрод,ОстПогСуммаПродУпр,ОстПогСуммаПродРуб,ОстПогНДСПрод,ОстПогНППрод,СтавкаНДС,СтавкаНП, ТаблНоменклатуры.НомерСтрокиДокумента, ОстПогСкидкаРуб, ОстПогСуммаДокРуб);
            КонецЕсли;          
            
            // все, погасили всю строку документа
            ОстПогКоличество= 0;
            ОстПогСуммаПрод    = 0;        
            ОстПогСуммаПродУпр    = 0;        
            ОстПогСуммаПродРуб    = 0;        
            ОстПогСкидкаРуб    = 0;        
            ОстПогНДСПрод    = 0;
            ОстПогНППрод    = 0;
            
            РегПартии.ПривязыватьСтроку(ТаблНоменклатуры.НомерСтрокиДокумента);
            
            РегПартии.ДвижениеРасходВыполнить();
        КонецЕсли;
    
    КонецЦикла; // по строкам ТаблНоменклатуры
    
КонецПроцедуры // глСписаниеПартийТМЦ()                                                    

//******************************************************************************
41 GreyK
 
10.07.18
21:55
(36) Запусти поиск по конфигурации "ПартииНаличие.МОЛ", а потом говори.
42 Злопчинский
 
10.07.18
21:56
Могу ошибаться, но так:
.
Реализация.МодульПроведения
..
глФильтрПартийТМЦ(Контекст, ТаблицаТМЦ, СписокПараметров,     ВремПартииНаличие);
глСписаниеПартийТМЦ(Контекст,ТаблицаТМЦ,СписокПараметров,ВремПартииНаличие,ТаблСписПартий,ТаблСписПартийКом);
.    
в глФильтрПартийТМЦ:
..
Если РегистрУчета="ПартииНаличие" Тогда МОЛ=Склад.МОЛ; КонецЕсли;
..
ИначеЕсли РегистрУчета="ПартииНаличие" Тогда
   ВремПартии.УстановитьЗначениеФильтра("МОЛ",МОЛ,1);
КонецЕсли;                        
.
В глСписаниеОстатковТМЦ:
..
ВремПартии.ВыгрузитьИтоги(ТаблИтогов,1,1);  
..далее перебор ТаблИтогов на списание остатков
43 spectre1978
 
10.07.18
21:58
(36)(39) Мне нафиг не уперлось спорить. Когда мне было надо, я проверял. Смена МОЛа поверх живых необнуленных партий приведет к тому что списания с них станут раком.
44 Kigo_Kigo
 
10.07.18
21:58
Строка
Если РегистрУчета="ПартииНаличие" Тогда МОЛ=Склад.МОЛ; КонецЕсли;
используется когда
    Если ОстПогКоличество>0 Тогда
            // значит мы расходуем Номенклатуру
            // а Партии, которые надо погашать исчерпаны,
            // значит надо выдать сообщение об этом инциденте
            // и записать текущий документ как Партию с отриц. знаком
            Если ПустоеЗначение(ТаблНоменклатуры.Партия)=1 Тогда
                глСообщениеПроведения ("При проведении партий ТМЦ по "+Конт.ТекущийДокумент()+" от "+Конт.ДатаДок+" по ТМЦ "
                +СокрЛП(Номенклатура)+" не распределилось по партиям "+ОстПогКоличество+" "+Номенклатура.БазоваяЕдиница, Конт.ТекущийДокумент(),,,1);
            Иначе
                глСообщениеПроведения("По указанной к списанию партии ТМЦ """ + ТаблНоменклатуры.Партия.ПриходныйДокумент +
                """ по ТМЦ " +СокрЛП(Номенклатура) +
                ?(ПустоеЗначение(ТаблНоменклатуры.Партия.Свойство) = 1,"",
                  ", (" +  
                  СокрЛП(ТаблНоменклатуры.Партия.Свойство.Владелец) +  ": "  +
                  СокрЛП(ТаблНоменклатуры.Партия.Свойство) +")"
                  ) +  
                " не распределилось  "+ОстПогКоличество+" "+Номенклатура.БазоваяЕдиница, Конт.ТекущийДокумент(),,,1);
            КонецЕсли;
45 Злопчинский
 
10.07.18
21:58
..наступило время охренительных историй
https://otvet.imgsmail.ru/download/213628657_71408c9d3a97a0a9a72b48d527cafda0_800.png
46 GreyK
 
10.07.18
21:58
(42) В 7.70.997 такого нет.
47 Злопчинский
 
10.07.18
22:00
(46) да ты шо..? точно? у меня под рукой 974 только.
я СИЛЬНО СОМНЕВАЮСЬ что поменяли, должно быть в 997 примерно как в 974
48 GreyK
 
10.07.18
22:02
(47) Давай текст модуля откуда ты это выдернул, название процедуры и номер строки.
49 Duke1C
 
10.07.18
22:03
Вопчем, сдается мне, нужно как-то опробовать это дело на "полуживой" базе (то бишь копии живой), но как обычно, пока нет времени и денег (денег зачеркнуто)
50 Злопчинский
 
10.07.18
22:03
(44) ТВОЯ строка
Если РегистрУчета="ПартииНаличие" Тогда МОЛ=Склад.МОЛ; КонецЕсли;

к ОПРЕДЕЛЕНИЮ партий, которые будут списываться, никаким боком
51 Duke1C
 
10.07.18
22:04
+49 ну либо вечно живой коллективный разум, таки выдаст на гора неоспоримое заключение
52 Злопчинский
 
10.07.18
22:04
Определение партий, которые будут читаться из итогов делается в процедуре налоджения фильтра на регистр партий:

Если РегистрУчета="ПартииНаличие" Тогда МОЛ=Склад.МОЛ; КонецЕсли; //моя строка - правильная
..
ИначеЕсли РегистрУчета="ПартииНаличие" Тогда
   ВремПартии.УстановитьЗначениеФильтра("МОЛ",МОЛ,1); //здесь порылось
КонецЕсли;
53 HawkEye
 
10.07.18
22:04
не трындтите...

Серега правильно пишет, если МОЛ-а поменять, то будет сообщение: "не распределилось по партиям" в итоге в регистре не закроется запись со старым МОЛ-ом и появиться отрицательная с новым....

опять теоретические гадания на кофейной гущи, при чем, все кто гадает ТиС в глаза не видели или видели 100 лет назад...
54 Злопчинский
 
10.07.18
22:04
(48) глФильтрПартийТМЦ смотри
55 Kigo_Kigo
 
10.07.18
22:05
у меня под ругой 936, модуль списания не менялся, построчно сравнивать не буду
56 Злопчинский
 
10.07.18
22:05
57 Злопчинский
 
10.07.18
22:06
(53) именно.
58 Злопчинский
 
10.07.18
22:07
я эти партионки подробно раскурочивал в районе 2003-2004 года когда на фармации сидел. там вся ценовая политика по пртоколам согласования цен (НПА) на себестоимость партий была завязана. и с тех пор переписывал у разных клиентов с разными извывертами.
59 HawkEye
 
10.07.18
22:08
(55) 936, 937 и все остальные ТиС-ы введет себя точно так как написано в (8).. все твои (и не только твои) гадания по коду - не верны.
60 Злопчинский
 
10.07.18
22:11
(55) у меня боевая база то ли на 932 то ли на 934 - там все точно так же..
61 Kigo_Kigo
 
10.07.18
22:11
(59) пишешь, докажи
функции глФильтрПартийТМЦ при списании я не увидел,и я не гадаю,Ю я читаю код, где таблИтогов заходят все МОЛ-ы по фильтру, и списываются отдельными строками
62 Злопчинский
 
10.07.18
22:12
63 GreyK
 
10.07.18
22:12
(54) Посмотрел, да есть такое.
64 Злопчинский
 
10.07.18
22:13
(61) смотри четче.
65 Kigo_Kigo
 
10.07.18
22:14
(64) Я тебе привел ко из типовой, покажи четче
66 Злопчинский
 
10.07.18
22:15
здесь вам не тут, а там вам покажут.
слава богу, это 77, а не мутная вдребезги 8-ка где занимаются гаданиями на кофейной гуще в большинстве случаев
67 HawkEye
 
10.07.18
22:17
(61) кому, тебе? ))) я тему твою соседнюю читал, у меня нет сертификатов )))
смотри код внимательно, если смотреть не можешь - поменяй МОЛА в складе и проведи реализацию, времени займет намного меньше, чем набивать тут глупые посты)))
68 Злопчинский
 
10.07.18
22:17
(65) хз какая у тебя типовая и сколько ты черники не ел...
https://www.screencast.com/t/SwLdCEJ3U
69 Kigo_Kigo
 
10.07.18
22:22
(68) Вот это аргументировано
(67) Я тебя тоже читал, и что? тебя кунать?, мне это нахер не надо, ты если пишешь, покажи докажи, и мне более делать нехер в частности тебе что то доказивать и перепроводить сидеть доки...
70 Duke1C
 
10.07.18
22:25
(65) глСписаниеПартийТМЦ вызывается из модуля документов, вызывается с параметрами
... пока писал - Серёга в (68) уже опередил
поэтому и тему завел, ибо нехоцца по модулям в коде бегать, хотя и (66)
Но видимо придется, для успокоения всё-таки (49) :)
71 HawkEye
 
10.07.18
22:28
(69) если тебе ничего тут не надо, чего тогда слюной брызжешь ? )))
72 Kigo_Kigo
 
10.07.18
22:28
(70) для успокоения всё-таки (49) , я бы сделал в обязательном порядке, но это уже твоя головная боль извини :)
73 Kigo_Kigo
 
10.07.18
22:32
(71) Если ты ничего доказывать не собрался и говорить по делу, зачем тогда в ветку зашел? так увидел знакомый ник, "спецом" попрекнуть? молодец, но как всегда никокай конкретики, так бла, бла, бла, от тебя, и спец ты похоже такой же
74 HawkEye
 
10.07.18
22:45
(73) в ветку я зашел, потому что, в отличии от тебя, знаю как это работает, т.к. сталкивался с этим в своей работе (лет 10 назад, а на память пока не жалуюсь), а не пытаюсь угадать по коду как ты, ну а по поводу кто спец, то тебе конечно виднее, особенно когда смотря в код ты не понимаешь как он работает )))
75 Duke1C
 
10.07.18
22:50
А вообще, для разрежения обстановки, типа "Огласите весь список, пожалуйста" (с) - сообщу уважаемому сообществу (и не надейтесь на тафтологию, её, таки не будет:)) )

Есть клиент, база ТиС, работают в ней давно, всё устраивает, типовая в доску, обновлялась регулярно (983 релиз на данный момент, я думаю, 10 лет назад был совсем другой актуален) возникла необходимость подключения онлайн касс (с этим тоже проблем нет, во всяком случае у меня). 6 тоговых точек в разных городах (работают в терминале), соответственно разные склады, но вот МОЛы (в программе) на нескольких точках одинаковые (точнее 3,2,1) в реале естественно разные.
Просто и база чутка "подраспухла", да и с июля меняют ЮрЛицо. Вот и подумал - убрать у складов МОЛов, все равно толку от них никакого
76 Kigo_Kigo
 
10.07.18
22:53
(75) толк я вам в 18 подсказал, меня почему то часто этот вопрос поднимается, я даже проекты везде заполняю, потом когда очередной ОРЗ у руководства эти 2 параметра сильно выручают от ненужной работы, равно как от написания разовых отчетов
77 Duke1C
 
10.07.18
22:54
Даже, если совсем честно, то база будет новая, т.е. копия старой со всеми справочниками, но без единого дока. Вот и хотел спросить - стоит МОЛов заводить в принципе, или лучше пустыми оставить (в части распухания регистра Партий)
78 Злопчинский
 
10.07.18
22:59
(69) ну так я этот аргумент на пару десятков постов выше привел...
79 Злопчинский
 
10.07.18
23:00
(77) оставляй пустыми
80 Duke1C
 
10.07.18
23:01
(76) Ну если только в плане себестоимости по складу посмотреть, то да. Это я и сам представляю, как бы.
Интересовал еще и попутный вопрос - чревато это менять их по ходу пьесы? (точнее даже память освежить, как сказать, ибо помнится мне, что лучше их вообще никогда не менять), ибо клиент вопрос задал
81 HawkEye
 
10.07.18
23:01
(75) если тебе не нужны партии в разрезе складов - можешь оставить пустыми, если нужны, тогда надо в МОЛ запихать название склада, выше советовали....
82 Duke1C
 
10.07.18
23:04
(79) Я и сказал, что лучше вообще пустыми (точнее не пустыми, а обезличенными) сделать и не трогать никогда!, но ничтоже сумняшеся, всё-таки решил тут уточнить:)
83 HawkEye
 
10.07.18
23:04
(80) после замены МОЛ-а в справочнике склад, надо весь регистр партий перегнать со старого МОЛ-а на нового... у меня для этого есть служебный документ... типовыми вещами этого не сделать....

либо, как советовал Серега - просто переименовать МОЛ-а, но надо смотреть используется ли он где-то еще, как сотрудник...
84 Duke1C
 
10.07.18
23:12
(83) ну вот и лаконичный ответ на мой вопрос. :)
Это ничуть не умаляет всю вышесказанную полемику, как говорится - в споре рождается истина, и всем спасибо за дискуссию:)
85 HawkEye
 
10.07.18
23:21
(84) так тебе это в первых 5 ответах написали )))))
и тут не было никаких споров, в которых рождается ))
86 Duke1C
 
10.07.18
23:24
(85) Ну в первых 5 ответах, таки было несколько мнений, а потом попёрло, что не оторваться:)))
87 kofeinik
 
10.07.18
23:49
(83) Типовыми средствами можно списать, поменять мола на нового, и оприходовать. Но перепроводить все это потом нельзя, как и предыдущие доки.
88 Злопчинский
 
11.07.18
00:33
(86) тошнит уже... как Геракл в Авгиевых конюшнях.. копаешься во всем этом. Вычистишь - так нет, срут-с...
89 spectre1978
 
11.07.18
06:24
(77) если мола оставлять пустым, то потеряется привязка партий к складу, а бывает такое, что она нужна. Я бы завел служебные синтетические элементы справочника (не реальных людей) и использовал бы их в качестве молов.
90 HawkEye
 
11.07.18
08:23
(86) правильных - было одно: "остатки останутся на старом моле", оно как бы еще и логичное.... ))
(87) с такими извращениями - не ко мне....
91 spectre1978
 
11.07.18
08:28
(90) более идеологически правильно создать такой же новый склад с новым МОЛом. Затем на старом складе сделать инвентаризацию, на основании нее сделать списание и списать все в ноль, ибо МОЛ, будучи уволенным, перестает нести мат. ответственность. А на новом - на основании той же инвентаризации сделать оприходование. По-моему, так. В этом случае не пропадает возможность беспроблемно перепроводить документы.
92 Масянька
 
11.07.18
08:31
(0) МОЛ в партиях это аналог (ну, типа того) склада.
Склада в партиях нет, а есть МОЛ. Это и есть признак склада.
93 spectre1978
 
11.07.18
08:32
(92) обычно да. Но есть существенное отличие: один МОЛ может быть поставлен в соответствие нескольким складам.
94 vcv
 
11.07.18
08:44
(0) "6 тоговых точек в разных городах"
Я бы всё же порекомендовал, прежде чем применять совет "оставляй пустыми" (79) понять, какую себестоимость бизнес хочет. Если у вас точки в разных городах, наверное стоит разделить с/с по этим городам. И указывать МОЛ по городу, а не складу или кладовщику. Удобней будет.
95 vcv
 
11.07.18
08:52
(77) "стоит МОЛов заводить в принципе, или лучше пустыми оставить"
Это политика учёта себестоимости. И МОЛ лучше воспринимать не как "лицо", а как некий разрез аналитики. Который из каких-то не всегда понятных соображений назван МОЛ.

Если у вас жесткий партионный учёт (выбирается конкретная партия в документе), то МОЛ особо не нужен. Разве что для удобства отчётности.

Если жесткого партионного учёта нет, всё гораздо интересней.
- Себестоимость может считаться по всем компании и МОЛ тогда не нужен.
- Себестоимость может считаться по каждому складу и тогда МОЛ у каждого склада уникален.
- Себестоимость может считаться по группе складов. Это могут быть отдельные точки/филиалы/подразделения. Или склады, разбитые на зоны, каждая из которых для удобства заведена как "склад" в 1С.
96 HawkEye
 
11.07.18
09:06
(91) да, такой вариант более правильный...
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.