Имя: Пароль:
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) да, такой вариант более правильный...
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан