Имя: Пароль:
1C
1C 7.7
v7: Нашел вот такой веселый кусок кода. Что за вообще, подскажите плиз
,
0 Double_Medved
 
16.09.13
17:45
1с 7.7 ТиС, дописанная. Программист что-то там дописал, потом остатки конкретно поплыли и его уволили. В частности он переписывал обработку проведения КорректировкиПартий, и самолично делал сам этот документ. И вот что я там нашел:

Для Номер = 1 По Метаданные.Регистр() Цикл
     ОчиститьДвижения("Регистр."+Метаданные.Регистр(Номер).Идентификатор);
    КонецЦикла;

Подскажите, так и надо? Это нормальная ситуация в корректировке партий? Этот код удаляет все движения регистров или что вообще?
8 Злопчинский
 
16.09.13
17:59
В типовй ТиС что-то яне припомню штатного документа "КорректировкаПартий"
9 mikecool
 
16.09.13
17:59
(0) использование этого куска приводит к "плавающим" остаткам, выпадению волос в подмышках, облысению ежиков... так что учти на будущее
10 Злопчинский
 
16.09.13
18:01
(0) чтобы остатки поплыли по вине программиста1С и его за это уволили? - ну в конторе очень сильный бардак должен быть.
.
скорее всего ему надоело сопли за всеми утирать и подгузники менять (что какбэ свидетельствует документ "корректировкаПартий"), а тямы/желания/возможности выпилить более-менее нормальный учет - у него не было...
11 Злопчинский
 
16.09.13
18:02
(7) с учетом вопроса в (0) смотрите в хронике "дежурной части".. сегодня ночью.. не приходя в сознание.. умер программист 1С дубл-медведь...
12 Сияющий Асинхраль
 
16.09.13
18:05
(10) Да, когда был молодым, глупым, тоже разок пытался так остатки выровнять, пришел к выводу, что надо не корректировку использовать, а руки менеджерам повыдергивать, больше толку будет...
13 Classic
 
16.09.13
18:10
(10)
Все-таки когда в базе бардак, есть смысл сделать подобный документ.
Один раз
14 Злопчинский
 
16.09.13
18:10
(12) я первым делом нахрен зарубаю работу задним числом. 90% проблем уходят... главное - после зарубления заднего числа - продержаться первую неделю.. ;-)
15 Classic
 
16.09.13
18:11
А вот когда подобный документ введен в систему, то ничего "раньше" менять уже нельзя. иначе партии "поплывут". похоже именно такое и произошло. А вс*алась нэвистка:)
16 Злопчинский
 
16.09.13
18:11
(13) возможно. но остатки от этого не едут... обычно...
17 Zamestas
 
16.09.13
18:14
(16) Видимо там не в ТиС'е проблема.
18 Classic
 
16.09.13
18:16
(16)
Я имею ввиду, что этот документ как раз для фиксирования остатков партий на определенный момент и нужен. Чтоб не заносить остатки на какой-то выверенный после бардака период - они откоректируются данным документом. Дальнейшее использование данного документа исключить, как и любые операции. проведенные более ранним числом
19 Злопчинский
 
16.09.13
18:23
(18) угу
20 Злопчинский
 
16.09.13
18:23
но имхается мне, что проблемы здесь не в программитсе 1С.. ;-)
21 Double_Medved
 
16.09.13
18:32
Да я не валю на другого, честно. Просто объясняю что я пришел когда все было криво и что-то дописано, и работаю с тем что есть. Если не разгребу - получу по башке, всне зависимости от того, как работал предыдущий программист, значит надо разгрести. Валить на других - согласен, это не правильно
22 Double_Medved
 
16.09.13
18:35
Вопрос возник что не смогли продать один товар, я глянул - а он списан документом корректировка партий, а в реальности на складе есть. Вот и подумал что в корректировке какая-то собака зарыта
23 Double_Medved
 
16.09.13
18:37
Также в отчете о движениях документа корректировка партий есть типа (+3 телевизора L1, -3 телевизора L1, и так 10 раз). Неволей задумаешься, что тут что-то нечисто
24 Zamestas
 
16.09.13
18:39
(22) Для начала нужно понять, для чего именно нужен был документ КорректировкиПартий.
25 Злопчинский
 
16.09.13
18:39
(22) значит корректировка партий корректирует не только партии, но и остатки. в случае если по партиям криво, но остатки ок (наприаер партий меньше чем остатков) - типовая ТиС все равно даст продать.
26 Double_Medved
 
16.09.13
18:41
(25) остатки она тоже затронула, в том и дело
27 Zamestas
 
16.09.13
18:41
(25) Вроде должна ругаться на невозможность распределить по партиям.
28 Double_Medved
 
16.09.13
18:42
(24) проблема в том что никто вообще в конторе не в курсе зачем была сделана корректировка партий, и делал ее сам программист, а не менеджер там и не бухгалтер
29 Double_Medved
 
16.09.13
18:42
Собственно позвольте представить саму обработку проведения, комментариев почти нет, и буду очень благодарен тому кто сможет вкратце объяснит что тут делается:
Процедура ОбработкаПроведения(ВидыДвижений)
        
    Для Номер = 1 По Метаданные.Регистр() Цикл
        ОчиститьДвижения("Регистр."+Метаданные.Регистр(Номер).Идентификатор);
    КонецЦикла;                
                
    РегПартий        = СоздатьОбъект("Регистр.ПартииНаличие");
    ТаблПеремещений = СоздатьОбъект("ТаблицаЗначений");
    Док                = СоздатьОбъект("Документ");
    Табл            = СоздатьОбъект("ТаблицаЗначений");
    Табл.НоваяКолонка("Номенклатура");
    Табл.НоваяКолонка("Партия");
    Табл.НоваяКолонка("ПартияКод");
    Табл.НоваяКолонка("Количество");
    
    Если ТипЗначенияСтр(ЗначениеИзСтроки(СтрокаПеремещений))="ТаблицаЗначений" Тогда
        ТаблПеремещений.Загрузить(ЗначениеИзСтроки(СтрокаПеремещений));
    Иначе
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
    ТаблПеремещений.Выбратьстроки();
    Пока ТаблПеремещений.ПолучитьСтроку()=1 Цикл
        Док.НайтиДокумент(ТаблПеремещений.ПеремещениеТМЦ);
        РегПартий.ВыбратьДвиженияДокумента(Док.ТекущийДокумент());
        Пока РегПартий.ПолучитьДвижение()=1    Цикл
            Если РегПартий.Приход=1 Тогда
                Табл.НоваяСтрока();
                Табл.Номенклатура    = РегПартий.Номенклатура;
                Табл.Партия            = РегПартий.Партия;
                Табл.ПартияКод        = СокрЛП(РегПартий.Номенклатура.Код)+"_"+ СокрЛП(РегПартий.Партия.Код);
                Табл.Количество        = РегПартий.Количество;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ДатаДок по ДатаДок;
    |ФирмаЗ         = Регистр.ПартииНаличие.Фирма;
    |МОЛ             = Регистр.ПартииНаличие.МОЛ;
    |Номенклатура     = Регистр.ПартииНаличие.Номенклатура;
    |Партия         = Регистр.ПартииНаличие.Партия;
    |ДатаПартии     = Регистр.ПартииНаличие.ДатаПартии;
    |СтатусПартии     = Регистр.ПартииНаличие.СтатусПартии;
    |Количество     = Регистр.ПартииНаличие.Количество;
    |СуммаУпр         = Регистр.ПартииНаличие.СуммаУпр;
    |СуммаРуб         = Регистр.ПартииНаличие.СуммаРуб;
    |СуммаБезНДС     = Регистр.ПартииНаличие.СуммаБезНДС;
    |СуммаПлат         = Регистр.ПартииНаличие.СуммаПлат;
    |Функция КокОстКоличество     = КонОст(Количество);
    |Функция КокОстСуммаУпр     = КонОст(СуммаУпр);
    |Функция КокОстСуммаРуб     = КонОст(СуммаРуб);
    |Функция КокОстСуммаБезНДС     = КонОст(СуммаБезНДС);
    |Функция КокОстСуммаПлат     = КонОст(СуммаПлат);
    |Группировка ФирмаЗ без групп;
    |Группировка МОЛ без групп;
    |Группировка Номенклатура без групп;
    |Группировка Партия;
    |Группировка ДатаПартии;
    |Условие(Номенклатура в ГруппаНоменклатура);
    |Условие(СтатусПартии = Перечисление.СтатусыПартии.Т_Купленный);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    ТаблОст    = СоздатьОбъект("ТаблицаЗначений");
    ТаблОст.НоваяКолонка("Номенклатура");
    ТаблОст.НоваяКолонка("ТаблМОЛ");
                                                
    Пока Запрос.Группировка(1) = 1 Цикл  
        Пока Запрос.Группировка(2) = 1 Цикл  
            Пока Запрос.Группировка(3) = 1 Цикл
                Пока Запрос.Группировка(4) = 1 Цикл
                    Пока Запрос.Группировка(5) = 1 Цикл  
                        КодПартии = СокрЛП(Запрос.Номенклатура.Код)+"_"+ СокрЛП(Запрос.Партия.Код);
                        МСтрока        = "";
                        Если Табл.НайтиЗначение(КодПартии,МСтрока,"ПартияКод")=0 Тогда
                            Регистр.ПартииНаличие.Фирма            = Запрос.ФирмаЗ;
                            Регистр.ПартииНаличие.Мол           = Запрос.Мол;
                            Регистр.ПартииНаличие.Номенклатура  = Запрос.Номенклатура;
                            Регистр.ПартииНаличие.СтатусПартии    = Перечисление.СтатусыПартии.Т_Купленный;
                            Регистр.ПартииНаличие.Партия        = Запрос.Партия;
                            Регистр.ПартииНаличие.ДатаПартии    = Запрос.ДатаПартии;
                            Регистр.ПартииНаличие.Количество    = Запрос.КокОстКоличество;
                            Регистр.ПартииНаличие.СуммаУпр        = Запрос.КокОстСуммаУпр;
                            Регистр.ПартииНаличие.СуммаРуб        = Запрос.КокОстСуммаРуб;
                            Регистр.ПартииНаличие.СуммаБезНДС    = Запрос.КокОстСуммаБезНДС;
                            Регистр.ПартииНаличие.СуммаПлат        = Запрос.КокОстСуммаПлат;
                            Регистр.ПартииНаличие.КодОперации    = Перечисление.КодыОпераций.Прочее;
                            Регистр.ПартииНаличие.ДвижениеРасходВыполнить();              
                        Иначе
                            Табл.ПолучитьСтрокуПоНомеру(МСтрока);
                            Если не(Табл.Количество = Запрос.КокОстКоличество) Тогда
                                Сообщить(Табл.Номенклатура);    
                                Сообщить(Табл.Партия);    
                            КонецЕсли;
                                
                            МСтрока    = "";
                            Если ТаблОст.НайтиЗначение(Запрос.Номенклатура,МСтрока,"Номенклатура")=0 Тогда
                                ТаблМОЛ    = СоздатьОбъект("ТаблицаЗначений");
                                ТаблМОЛ.НоваяКолонка("Количество");
                                ТаблМОЛ.НоваяКолонка("МОЛ");
    
                                ТаблОст.НоваяСтрока();
                                ТаблОст.Номенклатура= Запрос.Номенклатура;
                                ТаблОст.ТаблМОЛ        = ТаблМОЛ;
                            Иначе
                                ТаблОст.ПолучитьСтрокуПоНомеру(МСтрока);
                            КонецЕсли;
                            ТаблОст.ТаблМОЛ.НоваяСтрока();
                            ТаблОст.ТаблМОЛ.МОЛ            = Запрос.МОЛ;
                            ТаблОст.ТаблМОЛ.Количество    = Запрос.КокОстКоличество;
                        КонецЕсли;
                    КонецЦикла;
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;    
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ДатаДок по ДатаДок;
    |ФирмаЗ         = Регистр.ОстаткиТМЦ.Фирма;
    |Номенклатура    = Регистр.ОстаткиТМЦ.Номенклатура;
    |Склад             = Регистр.ОстаткиТМЦ.Склад;
    |ЦенаПрод         = Регистр.ОстаткиТМЦ.ЦенаПрод;
    |Количество     = Регистр.ОстаткиТМЦ.Количество;
    |Функция КокОстКоличество     = КонОст(Количество);
    |Группировка ФирмаЗ без групп;
    |Группировка Номенклатура без групп;
    |Группировка ЦенаПрод;
    |Группировка Склад без групп;
    |Условие(Номенклатура в ГруппаНоменклатура);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;    
                    
    СпрСкл     = СоздатьОбъект("Справочник.Склады");
    
    Пока Запрос.Группировка(1) = 1 Цикл  
        Пока Запрос.Группировка(2) = 1 Цикл  
            Пока Запрос.Группировка(3) = 1 Цикл
                МСтрока    = "";
                Если ТаблОст.НайтиЗначение(Запрос.Номенклатура,МСтрока,"Номенклатура")=1 Тогда
                    ТаблОст.ПолучитьСтрокуПоНомеру(МСтрока);
                    ТаблОст.ТаблМОЛ.Свернуть("МОЛ","Количество");
                    ТаблОст.ТаблМОЛ.ВыбратьСтроки();
                    Пока ТаблОст.ТаблМОЛ.ПолучитьСтроку() = 1 Цикл    
                        Если ПустоеЗначение(ТаблОст.ТаблМОЛ.МОЛ)=1 Тогда
                            СпрСкл.НайтиПоКоду("00015");                                          
                        Иначе
                            СпрСкл.НайтиПоРеквизиту("МОЛ",ТаблОст.ТаблМОЛ.МОЛ,1);    
                        КонецЕсли;
                        Регистр.ОстаткиТМЦ.Фирма        = Запрос.ФирмаЗ;
                        Регистр.ОстаткиТМЦ.Склад        = СпрСкл.ТекущийЭлемент();
                        Регистр.ОстаткиТМЦ.Номенклатура = Запрос.Номенклатура;
                        Регистр.ОстаткиТМЦ.ЦенаПрод        = Запрос.ЦенаПрод;
                        Регистр.ОстаткиТМЦ.Количество    = ТаблОст.ТаблМОЛ.Количество;
                        Регистр.ОстаткиТМЦ.ДвижениеПриходВыполнить();              
                    КонецЦикла;    
                КонецЕсли;
                Пока Запрос.Группировка(4) = 1 Цикл
                    Регистр.ОстаткиТМЦ.Фирма        = Запрос.ФирмаЗ;
                    Регистр.ОстаткиТМЦ.Склад        = Запрос.Склад;
                    Регистр.ОстаткиТМЦ.Номенклатура = Запрос.Номенклатура;
                    Регистр.ОстаткиТМЦ.ЦенаПрод        = Запрос.ЦенаПрод;
                    Регистр.ОстаткиТМЦ.Количество    = Запрос.Количество;
                    Регистр.ОстаткиТМЦ.ДвижениеРасходВыполнить();              
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;
КонецПроцедуры //ОбработкаПроведения()
30 Classic
 
16.09.13
18:42
(26)
Поинтересуйся пойди зачем вводился данный документ в системы(кто был инициатором) и кто заносил данные в сам документ. потому как не разберешься. Наверняка там большинство движений правильные
31 Злопчинский
 
16.09.13
18:43
(21) > Если не разгребу - получу по башке, всне зависимости от того, как работал предыдущий программист, значит надо разгрести.
.
бросай нахрен такой подход.
.
одно дело если ты разгребаешь кривой код и наследие прошлого программиста. Если ты начинаешь разгребать кривизну УЧЕТА, остатков и прочего аналогичного - не стесняйся, ломи ЗП по полной - такаие работы вообщем - НВЕДЕНИЕ ПОРЯДКА 9вспомни кино Криминальное чтиво) - должны стоить дорго. Делать их только за то, чтобы "..не получить по башке" - себя не уважать.
.
да, может быть ситуевина, когда работа 1сника была направлена тупо на один кодинг, а усилий на обсепечение порядка мало-мальского предыдущий прог не прилагал (тут хз, издалека нам не видно) - и теперь во всех траблах венять 1Сника...
32 Злопчинский
 
16.09.13
18:44
(30) да стопудово 1Сник все это заносил/генерил. или ты думаешь что из стада офисных абизян есть реально способные люди выправлять учет если его запустили до такой степени..?
33 Classic
 
16.09.13
18:44
(32)
Согласен, что одинэсник. Который оказался виноват в том, что еще и учет пытался наладить :)
34 Double_Medved
 
16.09.13
18:45
(30) его делал сам программист предыдущий (и сам код, и сам по себе документ). Программист больше не работает и связи с ним нет. А больше никто не в курсе зачем был сделан документ. Тут нужен Шерлок Холмс, чтобы понять, зачем был сделан документ
35 Double_Medved
 
16.09.13
18:48
(33) да мне правда пофигу уже, кто виноват. Умные люди на этом форуме научили так относиться. Но вот подходит бухгалтер - выясняется что корректировка списала дорогой товар (тысячь на 50), который в реальности есть на складе. Типа это ошибка и надо узнать почему корректировка это списала. И вот я что-то хрен пойму почему она это списала и почему вообще она повлияла на остатки. Разве это нормально когда корректировка влияет на остатки?
36 Zamestas
 
16.09.13
18:48
(34) Я так понял - документ этот один? Или их несколько (чем отличаются)? + За какой он(и) период.
37 Злопчинский
 
16.09.13
18:48
(34) не нужен тут холмс. итак все понятно. такие документы становятся нужны тогда, когда в конторе бардак, прогу юзают как печмаш безо всякой оглядки на правила/методику.
.
возможен вариант когда в конторе развеситсая интеркампани, учетом и ведением которйо никто не занимался. и это с горем пополам тянул прог. в результате вылилось в ожидаемую бяку...
.
38 Double_Medved
 
16.09.13
18:49
(36) документ такой один проведенный и несколько помеченных на удаление
39 zak555
 
16.09.13
18:49
(0) для отладки
40 Злопчинский
 
16.09.13
18:49
(35) по БУ не менее раза в год должна быть инвентаризация. еслии ее не делали - ССЗБ.
41 Double_Medved
 
16.09.13
18:50
(36) документ почти двух годовалой давности. Такое дело что некоторые товары залеживаются на года и только сейчас выясняется что они списаны корректировкой. При этом как-то дико лезть в такой старый документ...
42 Zamestas
 
16.09.13
18:50
(36) От какого числа док?
43 Double_Medved
 
16.09.13
18:51
(40) что такое ССЗБ?
44 Double_Medved
 
16.09.13
18:51
(42) два года назад сделан
45 Злопчинский
 
16.09.13
18:51
(35) > Но вот подходит бухгалтер - выясняется что корректировка списала дорогой товар (тысячь на 50), который в реальности есть на складе.
/
1 вежливо но настойчиво послать бухгалтера с атими вопросами в то место из которого мы все вышли... с вопросами что и почему - В СЛОЖИВШЕЙСЯ ситуации - (отпихивайся нахрен как можешь на люьые вопросы почему такие остатки ки то так сделал ипочему так вышло) - к людям, ответсвенным за товародвижение и УЧЕт - прог1С явно не из их числа.
.
иначе - зачиморишься вдребезги.
46 Злопчинский
 
16.09.13
18:51
Сами Себе Злобные Буратины
47 Double_Medved
 
16.09.13
18:51
(42) 10.10.2010
48 Песец
 
16.09.13
18:52
(0) "Программист что-то там дописал, потом остатки конкретно поплыли ".

Ага, все было в шоколаде, но откуда-то появился злой программист и все испортил.

Беги оттуда. Судя по вопросу у тебя нет ни квалификации, ни опыта работы с бушками/манагерами.
49 Zamestas
 
16.09.13
18:52
Такое дело что некоторые товары залеживаются на года и только сейчас выясняется что они списаны корректировкой.
100% - (37)
50 Злой Бобр
 
16.09.13
18:53
(21) Крайним будешь полюбому. Наглядный пример твой бывший программист. Возможно он тоже пытался как мог навести порядок. Но несложилось.
51 Double_Medved
 
16.09.13
18:53
Чтобы выправить остатки (1с с реальностью не сходится, блть), я предложил сделать инвентаризацию но главный бухгалтер хочет  перерыть документы прошлых лет чтобы найти ошибки. Даже не знаю что по этому поводу сказать
52 Zamestas
 
16.09.13
18:55
(51) Дык флаг ей в руки - пусит роет. А инвентаризацию делать в любом случае надо будет + когда последняя была проведена?
53 Злопчинский
 
16.09.13
18:55
если товар на 50 тыс лежал два года и теперь его не смогли продать - и это прост офигеть какой ущерб для фирмы и реноме перед клиентами - то в конторе вообще полный мутняк. Люди вообще там судя по всему тотально мутные.
.
как могли впихнуть впродажу - попытаться продать - товар которого нет на остатке? - непоянтно!!!
.
если товар продают по факут - взяли с витрины/со склада/итд и теперь надо его "выписать" в программе - но не получается - но это офигеть как важно и надо продать - то что мешало ВРЕМЕННО на 5 минут отключить контроль остатков, провести докумер  и вклбючить назад..? Непонятно!!
.
имхо - пипл в конторе мутный, учет не ведется, возможностей проги не знают, никто ничему не учил, а теперь хотят чтобы было все красиво...
.
нахрен!!! срочно нахрен!! если не нахрен - то только за большие деньги разгребать это гуано!! за существенно большую ЗП хотя бы на пару первых месяцев.
54 Zamestas
 
16.09.13
18:55
*пусть роет
55 Злопчинский
 
16.09.13
18:56
(51) главному бузгалтеру тонко намекни - что ВЕСТИ УЧЕТ ПРАВИЛЬНО - гораздо дешевле во всех смыслах, чем потом копать и заниматься лизингом
56 Песец
 
16.09.13
18:57
(51) Да нивапрос: пусть поднимают первичку и набивают за  все прошлые года в чистую базу. Потом ты сравниваешь правильную базу с той что есть - и вот они ошибки!

А что это даст спроси? Ну выяснят что пять лет назад манагер Вася Иванов накосячил, и какой с этого профит?
57 Double_Medved
 
16.09.13
18:57
(53) "то что мешало ВРЕМЕННО на 5 минут отключить контроль остатков, провести докумер  и вклбючить назад..? Непонятно!! " Я был в полном афиге но у них до меня не стоял контроль отрицательных остатков (то есть стояло "не учитывать"), и они местами напродавали в минус!
58 Злопчинский
 
16.09.13
19:00
(57) напродовали? напродовали! значит товар был!! в учете - херня полная!!
59 Zamestas
 
16.09.13
19:01
(57) Когда последняя была инвентаризация?
60 Double_Medved
 
16.09.13
19:01
ТАМ такооой косяк... Реализация настроена так что в шапке указывается "главный склад", а в табличной части указываются серийные номера, и по ним 1с ищет реальное местоположение товара и списывает типа с "склада номер 1" и "склада номер 2". То бишь списание одним документом с нескольких складов!НО! БЛТЬ! было не обязательно заполнять серийные номера, их и не заполняли, в итоге без серийника 1с не могла найти реальное местоположение товара и от безисходности списывала с "главного склада", когда реально товар был на "складе номер 2", естественно, списывал в минус, БЛДЖАД!
61 Double_Medved
 
16.09.13
19:02
(59) 2 года назад
62 Double_Medved
 
16.09.13
19:02
(60) списывалось в минус да еще и с неверного склада!
63 Песец
 
16.09.13
19:09
(60) В реальности (физически) сколько складов?
64 Double_Medved
 
16.09.13
19:12
(63) 4 склада.
65 Double_Medved
 
16.09.13
19:12
Пойду-ка домой, потом обязательно прочитаю если кто-то напишет и надеюсь продолжить тему завтра, надеюсь на помощь форумцев в разбирании кода, которую неоднократно получал и я благодарен вам за это
66 Zamestas
 
16.09.13
19:15
(60) Поздравляю - решить проблему сможет написание весьма хитрой процедуры проведения реализации (а если есть поступление товара после реализации - то ооочень хитрую) и перепроведением доков за 2 года.
68 Песец
 
16.09.13
19:20
(64) И кто подписывал накладную? МОЛ один на всех складах что ли? По-видимому манагеры потребовали "вот мля сейчас покупаетель уйдет, мы на тебя все свесим, надо срочно напечатать, а потом обязательно заполним номера".
Имхо, инвентаризация тмц до конца этой недели, до конца года инвентаризация расчетов. С 1 января начинать новую жизнь.
Копаться в этом бардаке это зп раза в три хотя бы выше чем у тебя сейчас.
69 ХрюнМанюн
 
16.09.13
19:21
Первый раз вижу что уволили за поправимую ошибку толкового прога, а взамен взяли неопытного и криворукого.
70 Eugeneer
 
16.09.13
19:22
Хотя по (29) правильно что уволили.
В семерке в обработке проведения использовать запрос - полный дибил только мог написать.
72 Злопчинский
 
16.09.13
19:27
(70) женя, а как допустим решить задачу: есть документы реализации (обынче накладные). есть транспортные накладные, которые могут в себя включать несколько реализаций. требуется обсепечить контроль - чтобы одна реализация не смогла попасть более в чем одну транспортную накладную. Операции с транспортными накладными - могут быть все, какие возможны - удаление реализаций из транспортных накладных, добавление в транспортные накладные и т.д.
.
как бы решить красиво?
.
пок аничего более путного чем организовать регистр сведений и при проведении транспортной накладной фиксировать реализацию в транспортной накладной, а при проведении - выбирать итоги из регистра сведений...
??
73 Eugeneer
 
16.09.13
19:30
(72) нафига извращения. обычный запрос.
У тебя полный аналог работы счетфактур. когда при записи реализации идет проверка и тп на наличие существующей сф.
Тот же принцип.
74 Eugeneer
 
16.09.13
19:31
фунция с запросом в 10 строк возвращающая ссылку либо неопределено если нет ни одной транспортной и сикомой реализацией.
75 Eugeneer
 
16.09.13
19:32
Ну хоч регистр сделай. Ведь тоже решение.
76 Злопчинский
 
16.09.13
19:38
(73) не, идея по контролю СФ - не катит. сильно много писать во всяких местах, потому как ТНки могут генериться программно и единсвенный вменяемый гарнатированный способ - это контроль на то что реализация уже зантяа в другой Тнке - это контроль при проведении... а контроль при проведении - это регистр (в проведении писать флажки в справочники/документы - мне не нравится... еслои строить регистр сведений - то измерений не будет, соответсвенно итоги тупо не вытащить - только запросом - в модуле проведения...? регистр остатков заюзывать - хреново, надо обеспечивать закрытие... оборотный регистр - тож не пойдет... бяково-как-то...
77 Сердитый Кош
 
16.09.13
19:49
(57) Ну и что тут фигеть? Мне попадались такие главбухи которые просили отключить контроль, чтобы не налаживать криворукий учет. Удобнее им так. И ни какие предупреждения о последствиях не помогают. А потом через год случись что - ну первый раз она об этом слышит, святая невинность. И будет такие сказки новому программисту рассказывать...
78 Double_Medved
 
16.09.13
19:52
Ох за чтож меня криворуким то 100 раз обозвали. Код я там пока особо не правил, вот хотел по поводу того каким образом править посоветоваться на форуме. А тот код который я скинул - однако не мой.
79 Double_Medved
 
16.09.13
19:53
Спасибо тем кто подавал идеи, такие как (66)
80 Zamestas
 
16.09.13
20:12
(79) Ты не представляешь объем плясок в (66)...
81 Злопчинский
 
16.09.13
20:38
(80) пусть роет
;-)
82 mih_io
 
16.09.13
20:54
Явно предыдущему программисту дали список остатка, сколько должно быть, он и поправил. Дальше опять кривой учет и остатки сбились все, но виноват конечно программер со своим чудным документов корректировки.

(0) делайте инвентаризацию, не тупите. И ведите от неё нормально.
83 Злопчинский
 
16.09.13
21:32
(82) не выйдет... "вести нормально" - это не просто завтра с утра начать все вести нормально - это целый комплекс оранизационно-технических мер. а. судя по всему, в конторе, как во многих отсутсвует лицо, отвечающее за согласованное действие пордразделений, разработку хотя бы! среднсрочной тактики... так что, не взлетит...
84 mih_io
 
16.09.13
23:07
(83) согласен конечно, плюс, что после инвентаризации хоть будут видны узкие места, хотя бы кто вновь косячит и в какую сторону начать двигаться.

А то лапки свесили и во всем виноват "старый" программист )
85 КапЛей
 
16.09.13
23:27
в этой ветке полтора человека вменяемых. Пилять! кто бы мне раньше сказал бы что одним будет маня...
86 Eugeneer
 
16.09.13
23:29
(0) на прочитай мою статейку, как раз тебе пригодиться.
http://infostart.ru/public/158093/
87 Злопчинский
 
16.09.13
23:29
(85) маня = 1 вменяемый, меня хоть на 0.1-02 - хватило..????!!! ;-)
88 Злопчинский
 
16.09.13
23:32
(86) ты думаешь осилит...?
89 Злопчинский
 
16.09.13
23:37
Кстати, я вот на своей базе прикидывал аналогичный расклад без ведения партионного учета (кредитным докам) по взаиморасчетам. На моих объемах - проще взаиморасчеты вести в "куче". апри необходимости по кредитным докам раскладывать уже в отчетах - считает быстро, напряга вообщем нет. Именно так делил свой учет на две "ветки" - рассчитывая по каждой ветке свои долги и формируюя входящие остатки по кредитным докам... как оказалось - везде где можно косячить - менеджеры косячат. если их не епсти со страшной силой... отгрузки/взаиморасчеты по одному банку, а оплаты - по другому банку - вот и висят зеркальные остатки , вроде и ноль. а вроде и не ноль.. бухия стонет это все выравнивать корректировками - опа полная короче
90 Eugeneer
 
17.09.13
00:20
(88) других вариантов нет. Не для него - для фирмы.
Такие фирмы уже досконально изучены под микроскопом. Или делают - ну или..... Короче это попадос и конкретный для фирмы.
Уже много раз все пройдено опытом.
Либо делают причем с прямыми руками.
91 Злопчинский
 
17.09.13
00:33
(90) эт понятно... но они ж хотят практически даром обычно... в результате все остаетяс примерно как и было...
92 Bigbro
 
17.09.13
06:14
Если директор конторы доступен и до него удастся донести ситуацию - то это и надо сделать. Максимально объяснить чьи обязанности в чем состоят, заручиться поддержкой, попросить подписать необходимые приказы/регламенты для наведения порядка. Если не удастся - проще уйти, потому как не имея поддуржки в самом верху бардак не переломить.
93 VladZ
 
17.09.13
06:42
(0) Рад за тебя. Тебе столько еще нового и интересного предстоит узнать!
94 catena
 
17.09.13
06:48
А что, очень хороший способ набраться опыта. И в учете разберешься, и с пользователями общаться научишься, при желании даже в коде можно научиться разбираться.
95 Bigbro
 
17.09.13
06:52
(94) мне кажется набираться опыта решая адекватные задачи бизнеса при работе в нормальной фирме, желательно при наличии более опытных коллег - гораздо более полезно, нежели разгребать бардак. потому как опыт конечно приобретешь, но практика показывает что ценность опыта по разгребанию бардака достаточно низкая, ибо порядок - более менее един, а вот бардак - у каждого уникален.
96 VladZ
 
17.09.13
06:56
(95) Поддерживаю! Учиться надо хорошему. Плохое - само прилипнет.
97 catena
 
17.09.13
07:04
(95)Работать в бардаке вредно, а вот приводить его в порядок всегда полезно. Когда вокруг всё хорошо, сидишь работаешь и нет необходимости вникать, что там вокруг происходит. А чтобы что-то наладить необходимо разобраться в самой сути процесса. Для меня самым бесценным опытом была работа с контрльно-ревизионным отделом, когда приходилось разгребать махинации и ошибки, налаживать нормальный учет в самых различных областях. Никакого доступа к "внутренностям", только отчеты.
98 zak555
 
17.09.13
07:35
(97) мозг
99 varelchik
 
17.09.13
10:21
(0) Интересно а зачем Цикл по МЕтаданным.Регистр()?
Можно ведь просто ОчиститьДвижения().
100 Ёпрст
 
17.09.13
10:24
(99) подумай еще раз
101 Double_Medved
 
17.09.13
10:30
Доброе утро, благо что директор признает что бардак, и всеми руками за то чтобы наказать виноватых огнем и мечем, разработать приказы по должностным обязательствам и заставлять подписывать или увольняться. разговаривая вчера допоздна на собрании с бухгалтерами и манагерами и т.д. Выяснил что например кладовщик делает примерно 90% складских реализаций (ну это же почти 100%, так ведь). Обнаружил что за последний месяц не сделано штук 5 документов на общую сумму в пару сотен тысяч. И они думают что же у них остатки не сходятся. Тут похоже проблема не в 1с, по крайней мере, не только в 1с.
102 Ёпрст
 
17.09.13
10:32
(101) Сделать инвентаризацию на складах, забить останки в чистую типовую ТиС/Комплексную, забыть о проблеме.
103 Ёпрст
 
17.09.13
10:33
или в УТ/УПП.. если приверженец снеговичка.
104 varelchik
 
17.09.13
10:42
(100)
ОчиститьДвижения(<?>);
Синтаксис:
ОчиститьДвижения(<ВидыДвижений>)
Назначение:
Удалить движения документа.
Параметры:
<ВидыДвижений> - необязательный параметр. Если данный параметр не задан, то производится полная очистка всех движений.
105 arsik
 
гуру
17.09.13
10:47
Лучше в УТ - там и продажа одним документом с нескольких складов есть
106 arsik
 
гуру
17.09.13
10:49
(104) ты забыл добавить
''Регистр.ХХХХХХ'' - движение конкретного регистра, где ХХХХХХ - конкретный вид регистра;
''Операция'' - бухгалтерская операция;
''Справочник'' - все изменения периодических реквизитов справочников;
''ЖурналРасчетов'' - все изменения в журналах расчетов.

А нам нужно только регистров, и скорее всего удалить по регистру будет быстрее чем очистить
107 GStiv
 
17.09.13
10:50
Все не читал, но когда пришел на предприятие была похожая проблемма, когда партии никто никогда не выравнивал, вот скорее всего и всего сделал предыдущий программист документ, в котором пересортировал партии (позакрыл плюс на минус)