Имя: Пароль:
1C
1C 7.7
v7: Контроль выполнения заказов на уровне производства
0 Касандер72
 
06.06.12
10:22
Итак, версия 7.7 на скуле 2005, исходная - похоже на ТиС - но от него уже мало осталось.
С некоторого времени трикотаж начал пользоваться спросом, и стала очень рентабельной работа под заказ - клиент получает то что хочет, мы уверенно рассчитываем на прибыль.
Естественно, встал вопрос о контроле выпуска продукции по заказам - решили как-то её различать - то есть на лейбах заказанной продукции печатать "рамку".
"Ручками" отмечать и высчитывать сколько осталось надоело, да и геморно - заказы большие, да и исполняются в течение длительного времени, да и человеческий фактор слишком уж влиятелен.

Итак в конфе делал документ. позволяющий вводить заказы покупателей, который при проведении ложит всю инфу в отдельный регистр приходом. Здесь никаких проблем.
Расходная часть по регистру должна производится документом "Упаковка изделий", в каждой строке которого информация об отдельной упаковке. Встал вопрос в реализации механизма автоматического определения "заказанной" продукции, исходя из данных регистра заказов.

Первый вариант (0) анализировать остаток в регистре после каждой проводки - для 1С-ки как оказалось весьма проблематичен по времени и нагрузке.
Второй вариант - производить анализ непосредственно перед проведением проблематичен физически, из-за того, что процесс очень интенсивный и многоканальный - велика вероятность накладок - двойного учета заказов.

Вот вроде бы и все. Всех благодарю за идеи и советы.
1 Касандер72
 
06.06.12
10:37
Вот пример кода в модуле проведения реализации первого варианта:

ВсеРегистры = СоздатьОбъект("Регистры");
   РегЗаказов = ВсеРегистры.ЗаказыПроизводства;
   ДатаТА = ПолучитьДатуТА();
   
   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
       РегЗаказов.УстановитьЗначениеФильтра("Номенклатура",Номенклатура,1);
       РегЗаказов.УстановитьЗначениеФильтра("Размер",Размер,1);
       РегЗаказов.УстановитьЗначениеФильтра("Расцветка",Расцветка,1);
       РегЗаказов.ВременныйРасчет(1);
       ВсеРегистры.РассчитатьРегистрыНа(ДатаТА);
       
       ТекОстатки = РегЗаказов.СводныйОстаток(Номенклатура,Размер,Расцветка,"Количество");
       Если ТекОстатки > 0 Тогда
           Заказанная = 1;
           СписКолтво = ?(ТекОстатки-Количество>0,Количество,ТекОстатки)
       КонецЕсли;        
       
       Регистр.ЗаказыПроизводства.Номенклатура = Номенклатура;
       Регистр.ЗаказыПроизводства.Размер = Размер;
       Регистр.ЗаказыПроизводства.Расцветка = Расцветка;
       Регистр.ЗаказыПроизводства.Количество = СписКолтво;
       Регистр.ЗаказыПроизводства.ДвижениеРасходВыполнить();
   КонецЦикла;
2 Андрей_Андреич
 
naïve
06.06.12
10:42
Рассчитывать итоги на ТА в процессе подбора и проводить документ построчно. При грамотной реализации - никаких тормозов и дублей. Если быстродействие не устроит - прямые запросы.
Это с прогерской кочки зрения. А нафик оно нужно - ужо с руководством думайте.
3 Андрей_Андреич
 
naïve
06.06.12
10:51
Молчит белорусский партизан...
4 Касандер72
 
06.06.12
10:52
(2) подробнее о процессе подбора, плиз
немного подробннее о документе - данные в него заливаются из ТСД и определяются по штрихкодам вплоть до упаковщика и объекта упаковки - юзвери жмут только кнопки записать и провести
5 Касандер72
 
06.06.12
10:54
(4) сори, первой жмут кнопку "Загрузить" (данные из ТСД), ну и  бывает - "Очистить" или удаляют строки - когда в одну упаковку попытаются запихнуть различные по характеристикам изделия - это недопустимо
6 Андрей_Андреич
 
naïve
06.06.12
10:55
(4) Тогда я не понял процесса - я думал наоборот пикают сканером и добавляются строки документа
7 Андрей_Андреич
 
naïve
06.06.12
10:58
работа идет в реальном времени - никаких временных расчетов не надо. и фильтров тоже.
8 Андрей_Андреич
 
naïve
06.06.12
10:59
короче - добивайся работы на ТА - оно в 10 раз быстрее
9 Касандер72
 
06.06.12
10:59
(6) каждое изделие имеет этикетку с уникальным штрихкодом - они пикают по ним а затем по маркеру упаковки - с обезличенным штрихкодом - и так несколько раз. Заливают в док - при считывании с ТСД - программа сама определяет составы и характеристики упаковок. После проведения документа - распечатываются этикетки упаковок и наклеиваются на сами упаковки по маркерам
10 Касандер72
 
06.06.12
11:00
(8) что такое ТА? и с чем его едят? подробнее плиз
11 Андрей_Андреич
 
naïve
06.06.12
11:01
(10) Точка актуальности, т.е. работа в реальном времени.
12 Касандер72
 
06.06.12
11:02
(7) без рассчета регистра ТекОстатки постоянно равны одному значению:
ТекОстатки = РегЗаказов.СводныйОстаток(Номенклатура,Размер,Расцветка,"Количество");
а мне необходимо знать это после каждой проводки
13 Касандер72
 
06.06.12
11:04
(11) они и работают в реальном времени) только 12 конвейеров колбасят со свистом параллельно)
вообщем кто первым пимпочку нажал - тот и первый)
14 Андрей_Андреич
 
naïve
06.06.12
11:05
Стандартно при проведенни проверяется ИтогиАктуальны() и если неактуальны - выполняется временный расчет итогов на докумет. В приведенном коде маразм полный - итоги каждый раз рассчитываются на начало дня, что ГАРАНТИРОВАННО приводит к дублям, т.к. вся сегодняшняя работа игнорируется.
15 Андрей_Андреич
 
naïve
06.06.12
11:07
Размеров и расцветок дофига?
16 Касандер72
 
06.06.12
11:08
(14) В одном документе может быть 10 одинаковых упаковок из которых 5 под заказ попадают, а остальные - не должны  - поэтому смысла в проверке нет - после каждой проводки итоги меняются
17 Касандер72
 
06.06.12
11:09
(15) около 20 размеров и 20 расцветок у каждой модели в среднем, а моделей - тыщ 5
18 Касандер72
 
06.06.12
11:11
и необязательно одним документом одна модель упаковывается - в один док несколько упаковщиков могут слить инфу с ТСД - распечатать лейбы и разделить их между собой
19 Андрей_Андреич
 
naïve
06.06.12
11:14
(16) Первым делом выгрузи итоги в таблицу значений, предварительно установив фильтр по номенклатуре (сверни таблицу документа по номенклатуре и в список значений).
В полученной таблице придется искать твою комбинацию и отматывать при проведении счетчик (минусовать из ТЗ вручную).
Как оптимально искать в ТЗ - разные варианты есть.
20 Касандер72
 
06.06.12
11:18
(19) это - второй вариант, но с ним проблемы - из-за интенсивности - одинаковые изделия пакуются на разных конвейерах - до сервака более 800 метров через ... тернии вообщем - может быть накладка: пока на одном анализируется ТЗ - на другом считывание может произойти.  У нас даже один и тот-же док умудрялись открыть на разных компах одновременно - потом гемор с закрытием ещё тот был
21 chelentano
 
06.06.12
11:18
метод Актуальность(<ФлагАктуальности>), не?
Данный метод можно использовать только в модуле проведения документа. Если флаг установлен, то все последующие движения регистров будут изменять итоги временного расчета, и ,значит, итоги регистров временного расчета будут все время (при проведении документа) находиться в актуальном состоянии
22 Касандер72
 
06.06.12
11:19
(21) а вот это уже интересно - щас попробую
23 Андрей_Андреич
 
naïve
06.06.12
11:21
(22) Это тебует временного расчета, да еще и пересчета после каждого движения. Тупиковый путь. Лучше не пробуй - поверь, что напишешь за 5 минут и работать оно будет, но тормоза.
24 Касандер72
 
06.06.12
11:22
(21) примерчик кода не кинешь сюды плиз - лениво по инету ползать, искать
25 chelentano
 
06.06.12
11:23
(24) в любой типовой
26 Касандер72
 
06.06.12
11:24
(23) а ну да, признак актуальности не спасает
27 Андрей_Андреич
 
naïve
06.06.12
11:24
(24) А вот это уже наглость - ничего не знать да еще лениться. Синтакс-помощник не открывал?
28 Касандер72
 
06.06.12
11:26
(25) давно уже не юзаем типовых) из-за специфики - у нас бы номенклатура была бы .......
(27) давно открыл и прочитал - не совсем врубился - пример применения доступнее и нагляднее
29 Касандер72
 
06.06.12
11:28
Может, кто знает, если на бухитогах реализовать - там нужно перерасчитывать остаток после каждой проводки - или автомат идет - может быстрее будет?
30 Андрей_Андреич
 
naïve
06.06.12
11:33
(29) Не надо бухитоги. Оно регистры на то и называются "Оперативный учет".
31 chelentano
 
06.06.12
11:40
(29) в типовой ТиС глянь как сделано
32 kyrgyz
 
06.06.12
11:40
(0) Я бы все-таки подумал бы и советовал бы в сторону оптимизации бизнес процесса.
А вот если часть упаковщиц будут работать по определенным заказам. И только тот кто выбрал заказ тот и отвечает за него. Все делается на основании заказа а вот остальные работают на общем основании.
33 Касандер72
 
06.06.12
11:45
(32) думали - простой конвейера кто оплатит? да и распределением где что упаковывать - ещё тот гемор ...
каждый конвейер должен работать без остановки - паковать готовую продукцию
34 Андрей_Андреич
 
naïve
06.06.12
11:50
Что-то кругом фигня полная в алгоритме. А свернуть для проведения таблицу документа по номенклатуре, размеру и цвету разве нельзя? Тогда можно прямиком получать сводный остаток, поскольку списывается все количество в документе за один раз.
35 Касандер72
 
06.06.12
11:51
(30) вот пример из модуля проведения реализации 2-го варианта:

МультиСчетчик = СоздатьОбъект("ТаблицаЗначений");
   ВыгрузитьТабличнуюЧасть(МультиСчетчик);
   МультиСчетчик.Свернуть("Номенклатура,Обмер,Сорт","Количество");
   МультиСчетчик.ВыбратьСтроки();
   Пока МультиСчетчик.ПолучитьСтроку() = 1 Цикл
       МультиСчетчик.Количество = Регистр.ЗаказыПроизводства.СводныйОстаток(
       МультиСчетчик.Номенклатура, МультиСчетчик.Обмер,МультиСчетчик.Цвет,"Количество");
   КонецЦикла;
   
   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
       
       МультиСчетчик.ВыбратьСтроки();
       Пока МультиСчетчик.ПолучитьСтроку() = 1 Цикл
           Если МультиСчетчик.Номенклатура = Номенклатура Тогда
               Если МультиСчетчик.Обмер = Обмер Тогда
                   Если МультиСчетчик.Цвет = Цвет Тогда
                       
                       Если МультиСчетчик.Количество > 0 Тогда
                           Заказанная = 1;
                           СписКолтво = ?(МультиСчетчик.Количество-Количество>0,Количество,ТекОстатки);
                       КонецЕсли;
                   КонецЕсли;
               КонецЕсли;
           КонецЕсли;
       КонецЦикла;
       
       Регистр.ЗаказыПроизводства.Номенклатура = Номенклатура;
       Регистр.ЗаказыПроизводства.Размер = Обмер;
       Регистр.ЗаказыПроизводства.Расцветка = Цвет;
       Регистр.ЗаказыПроизводства.Количество = Количество;
       Регистр.ЗаказыПроизводства.ДвижениеРасходВыполнить();
       
   КонецЦикла;
36 Касандер72
 
06.06.12
11:52
(34) в документе допустим 15 упаковок, из них нужно отметить под заказ только 10! - и отпечатать на лейбе отличительный признак
37 Касандер72
 
06.06.12
11:54
(35) в примере неточность:
*Регистр.ЗаказыПроизводства.Количество = СписКолтво;
38 Касандер72
 
06.06.12
11:57
Сорки, только оттестил, так лучше:

МультиСчетчик = СоздатьОбъект("ТаблицаЗначений");
   ВыгрузитьТабличнуюЧасть(МультиСчетчик);
   МультиСчетчик.Свернуть("Номенклатура,Обмер,Сорт","Количество");
   МультиСчетчик.ВыбратьСтроки();
   Пока МультиСчетчик.ПолучитьСтроку() = 1 Цикл
       МультиСчетчик.Количество = Регистр.ЗаказыПроизводства.СводныйОстаток(
       МультиСчетчик.Номенклатура, МультиСчетчик.Обмер,МультиСчетчик.Цвет,"Количество");
   КонецЦикла;
   
   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
       МультиСчетчик.ВыбратьСтроки();
       Пока МультиСчетчик.ПолучитьСтроку() = 1 Цикл
           Если МультиСчетчик.Номенклатура = Номенклатура Тогда
               Если МультиСчетчик.Обмер = Обмер Тогда
                   Если МультиСчетчик.Цвет = Цвет Тогда                        
                       Если МультиСчетчик.Количество > 0 Тогда
                           Заказанная = 1;
                           СписКолтво = ?(МультиСчетчик.Количество-Количество>0,Количество,ТекОстатки);
                           Регистр.ЗаказыПроизводства.Номенклатура = Номенклатура;
                           Регистр.ЗаказыПроизводства.Размер = Обмер;
                           Регистр.ЗаказыПроизводства.Расцветка = Цвет;
                           Регистр.ЗаказыПроизводства.Количество = СписКолтво;
                           Регистр.ЗаказыПроизводства.ДвижениеРасходВыполнить();
                           Продолжить;
                       КонецЕсли;
                   КонецЕсли;
               КонецЕсли;
           КонецЕсли;
       КонецЦикла;        
   КонецЦикла;
39 Касандер72
 
06.06.12
12:00
*(38)   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
       МультиСчетчик.ВыбратьСтроки();
       Пока МультиСчетчик.ПолучитьСтроку() = 1 Цикл
           Если МультиСчетчик.Номенклатура = Номенклатура Тогда
               Если МультиСчетчик.Обмер = Обмер Тогда
                   Если МультиСчетчик.Цвет = Цвет Тогда                        
                       Если МультиСчетчик.Количество > 0 Тогда
                           Заказанная = 1;
                           Регистр.ЗаказыПроизводства.Номенклатура = Номенклатура;
                           Регистр.ЗаказыПроизводства.Размер = Обмер;
                           Регистр.ЗаказыПроизводства.Расцветка = Цвет;
                           Если МультиСчетчик.Количество - Количество > 0 Тогда
                               Регистр.ЗаказыПроизводства.Количество = Количество;
                           Иначе
                               Регистр.ЗаказыПроизводства.Количество = МультиСчетчик.Количество;
                           КонецЕсли;                            
                           Регистр.ЗаказыПроизводства.ДвижениеРасходВыполнить();
                           Продолжить;
                       КонецЕсли;
                   КонецЕсли;
               КонецЕсли;
           КонецЕсли;
       КонецЦикла;        
   КонецЦикла;
40 Злопчинский
 
06.06.12
12:06
Прочитал сверху и дальше читать не стал. ибо, по видимому бред. автор опять бежит фиг знает куда в каие-то документы определение каокет- хня полная.
.
инфы недостаточно.
.
непонятно. как налажен выпуск продукции..? из чего исходит? как принимается в производство? ничего не понятно.
.
рассмотрим гипотетический вариант:
.
Покупатель1 заказал
товар1 1000шт
товар2 3000шт
товар3 5000шт.
.
Покупатель2
товар1 100шт
товар2 2000шт
товар3 1500шт
.
Предположим что
товар1 - штатная упаковка 10шт
товар2 - 30шт
товар3 - 40шт.
.
итого необходимо на выходе производства получить
товар1 - 1100 шт., 110 кор.
товар2 - 5000 шт, 166,67 коробок = выпуск делается под упаковки = 167 кор.
товар3 - 6500 шт, 162.5 = 163 кор.
.
Требуемый заказ покупателя - известен. зафиксирован в программе.
.
"поточная" линия (швейный цех или что там) выпускает указанный товар, какая-то "роботозированная" (людьми или автоматами) упаковочная линия упаковывает выпущенные товары в стандартные упаковки, отмаркированные стандартным видом.
.
упакованные товары попадают на некий "маркировочный" конвеер (еще до выхода на склад).
на конвеере - упакованный товар, едет мимо сканера. проехал мимо сканер - вылезла лейбла с номером заказа покупателя и иными ид.данными заказа покупателя. стоит человекоробот и клеит лейбак на упаковку. Скольок лейбаков для какого заказа для данного товара напечатать - известно: берется из заявки покупателя.
.
если несколько упаковочных линий - чуть сложнее, но сути не меняет.
.
упакованный И УЖЕ ОТМАРКИРОВАННЫЙ зачявками покупателей упаковки поступают на склад. где такие же человеко робот производят ОТБОР в контейнеры по заявкам покупателей, жмакая и пикая лейбак заявки покупателя на упаковке.
.
что еще?
.

.
41 Андрей_Андреич
 
naïve
06.06.12
12:11
МультиСчетчик = СоздатьОбъект("ТаблицаЗначений");
   ВыгрузитьТабличнуюЧасть(МультиСчетчик);
   МультиСчетчик.Свернуть("Номенклатура,Обмер,Сорт","Количество");
   Мультисчетчик. НоваяКолонка("Код");
   МультиСчетчик.ВыбратьСтроки();
   Пока МультиСчетчик.ПолучитьСтроку() = 1 Цикл
       МультиСчетчик.Количество=Мин(МультиСчетчик.Количество,
       Регистр.ЗаказыПроизводства.СводныйОстаток(
       МультиСчетчик.Номенклатура, МультиСчетчик.Обмер,МультиСчетчик.Цвет,"Количество"));
       МультиСчетчик.Код=МультиСчетчик.Номенклатура.Код+МультиСчетчик.Обмер.Код+МультиСчетчик.Цвет.Код;
       Если МультиСчетчик.Количество>0 Тогда
          Регистр.ЗаказыПроизводства.Номенклатура = МультиСчетчик.Номенклатура;
          Регистр.ЗаказыПроизводства.Размер = МультиСчетчик.Обмер;
          Регистр.ЗаказыПроизводства.Расцветка = МультиСчетчик.Цвет;
          Регистр.ЗаказыПроизводства.Количество = МультиСчетчик.Количество;
       КонецЕсли;
   КонецЦикла;
   ВыбратьСтроки();
   Пока ПолучитьСтроку()=1 Цикл
       Ном=0;
       Если МультиСчетчик.НайтиЗначение(Номенклатура.Код+Обмер.Код+Цвет.Код,Ном,"Код")=1 Тогда
           МультиСчетчик.ПолучитьСтрокуПоНомеру(Ном);
           Если МультиСчетчик.Количество>0 Тогда
               Заказанная=1;    //    Как я понял, весь сыр-бор из-за этой строчки
               МультиСчетчик.Количество=МультиСчетчик.Количество-Количество;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;
42 Андрей_Андреич
 
naïve
06.06.12
12:12
В (41) забыл после заполнения регистра Движениерасход выполнить
43 Андрей_Андреич
 
naïve
06.06.12
12:14
фигня - через пару годиков научится. только учиться особо негде уже - влом азы 15летней давности по новой разжевывать
44 Касандер72
 
06.06.12
12:16
(40) мимо ...
Сначала отпечатываются этикетки изделий с уникальными штрихкодами и на участке ОТК цеплаются на изделия, а затем передаются на упаковочные конвейера.
Также отпечатываются "безликие" нумераторы упаковок и наклеиваются на пустые упаковочные пакеты.
На упаковочном конвейере действия упаковщика:
- пик по ШК изделия
- пик по ШК изделия
- пик по ШК изделия
- пик по ШК упаковки
- пик по ШК изделия
- пик по ШК изделия
- пик по ШК изделия
- пик по ШК изделия
- пик по ШК упаковки
- пик по ШК изделия
- пик по ШК изделия
- пик по ШК изделия
- пик по ШК изделия
- пик по ШК упаковки
инфа с ТСД заливается в документ: "Упаковка изделий" - результат: 3 строки:  1 3-я упаковка и 2 4-ых упаковки
потом, после проведения дока распечатываются этикетки упаковок и расклеиваются на них по номерам
задача: если есть заказ на 6 подходящих изделий - пометить две упаковки как заказные, а одна - обычная
45 Злопчинский
 
06.06.12
12:17
какие принципиальные проблемы?
.
если упаковочно-маркировочных линий несколько - проблемы не меняет, если уйти от кривых многострочных документов. Есть заявка покупателя - из нее формируем ОТДЕЛЬНОЕ "задание" на маркировку.
.
каждый факт пикания упаковки и маркировки его лейбаком - занимает при нормальной реализации примерно от 0.002 сек до 0.02 сек (больше времени будет этикетка из принтера вылазить) - у меня примерно такие временные показатели.
.
каждый жмак сканером уменьшает счетчик требуемых лейбаков в "ЗАДАНИИ" на маркировку. Никаких временных расчето и сводных итогов, расчетов на ТА и прочей шняги. Сформировал "задание" на маркировку - выставил счетчик количества лейбаков по покупателю на товар. Разные покупатели - по умолчанию - распределять лейбирование на разные линии. товар1 покупателя1 лейбируется на линии1, товар1 покупателя2 - лейбируется на линии2. Лейбирование одного товара одного покупателя на разных линиях допускать только когда нет такого товара для другого покупателя.
.
ПО СУТИ: инфы выданной автором недостаточно. нормальную систему можно сделать написав ЗНАЯ КОНКРЕТНЫЕ ЧАСТНОСТИ ОРГАНИЗАЦИИ И ИСПОЛНЕНИЯ ПРОИЗВОДСТВЕННОГО ПРОЦЕССА. эта инфа отсутсвует.
46 Касандер72
 
06.06.12
12:18
(43) спс, затестю - гляну - мож быстрее будет
47 Злопчинский
 
06.06.12
12:19
(44) - (40) никак не противоречит чето ты написал.
еще бы пояснил что такое
"одна 3-я упаковка и две 4-х упаковки"
48 Андрей_Андреич
 
naïve
06.06.12
12:20
(44) В (41) как раз разделено на 2 части
1. Проведение по регистру сводно по свернутой таблице
с запоминанием результатов в ТЗ
2. Перебор строк документа с заполнением колонки "заказано" со "списанием" количества из ТЗ.
49 Злопчинский
 
06.06.12
12:20
Нахрена что-то заливать в документ "упаковка изделия".? изделия всегда выходят упакованными в коробки. это - аксиома-атом и подтверждать это - не надо.
.
все что надо - на упакованный товар лепить лейбаки по заявкам покупателей.
50 Злопчинский
 
06.06.12
12:21
для чего считать заказанная или не заказанная - хз, непонятно.
51 Касандер72
 
06.06.12
12:23
(45) принципиальная проблема - скорость проведения дока - и без этого доки в очереди толкуться
о принтерах: у нас ДатаМаксы и Принтрониксы: 100 за минуту вылетает со свистом
распределении между покупателями пока нет - важно визуально для кладовщика видеть куда совать упаковку - в хранилище или в отборочный контейнер.
(47) 3-ая упаковка - упаковка с 3-мя изделиями, 4-ая - содержит 4 изделия
52 Касандер72
 
06.06.12
12:24
(49) у нас изделия упаковывают в пакеты на конвейерах) развивай воображение
53 Злопчинский
 
06.06.12
12:26
+(49) по налепленным лейбакам - быстро отбирать товар еще на входе в склад.
.
но это все равно гуано будет. если процесс практически непрерывный - все надо не так организовывать. инфы - недостатчоно. неясен темп поступленяи на склад, неясно количество одновременных заказов покупателей. - а от этого зависит весьма много - если 2-3-4 крупных заказа - проблем гораздо меньше. Если куча мелких заказов - совсем другой коленкор.
.
навскидку: попытка ре ализовать позаказное производство без детальной проработки - не взлетит.. или будет лететь как шар братьев Монгольфьер - куда ветер подует.
.
у меня, например, если бы не было ШТУЧНОГО отбора - вообще можно было бы замутить чисто роботизированиу линию сборки, вопрос только в деньгах на техническое оснащение.
54 Касандер72
 
06.06.12
12:28
+(49) такие аксиомы и стандартные конфы у нас уже давно не работают:
ручками вложил изделия в упаковку, отпикав их ТСД-кой, заклеил пакет,
залил в док инфу - распечатал лейбы для упаковок и расклеил)
55 Злопчинский
 
06.06.12
12:28
(51) упаковка с тремя изделиями - в упаковке 3  штуки одного товара, 4-я упаковка - в упаковке 4 штуки одного товара?
56 Злопчинский
 
06.06.12
12:29
(52) это у вас там воображение гуляет видимо весьма сильно.
.
у вас и на стадии производства "упаковка" и уде на складе "упаковка" упаковок в мешки.
.
вы e'; сначала стерминологией определитесь и ясностью изложения-описания. ;-)
57 Касандер72
 
06.06.12
12:30
(53) на конвеерах упаковка - интенсивная, передача на склад - непрерывная, большими партиями 1000-2000
(55) истинно так
58 Злопчинский
 
06.06.12
12:31
(51) какие нафиг скорости проведеняи доков где-то на потоке? в многострочных доках - ФИКСИРОВАТЬ ТОЛЬКО РЕЗУЛЬТАТ ВЫПОЛНЕНИЯ РАБОТЫ, но не саму работу/этапы от которых зависит следующая работа этап. Формировать "элементарные задания", выдавать их на "исполнение", В ОЧЕРЕДИ УЖЕ ИСПОЛНЕННЫХ формировать результаты и сливать в доки.
59 Касандер72
 
06.06.12
12:31
(56) у нас не воображение гуляет а два года уже все работает)
на фабрике - изделия в упаковки, на складе: упаковки - в мешки (пакеты, коробки)
60 Андрей_Андреич
 
naïve
06.06.12
12:32
(57) А этот учет вообще в отдельной базе вести - сливать в нее инфу из основной смысл имеет?
61 Злопчинский
 
06.06.12
12:32
нафига тебе какие-то проведеняи доков в производственном прцесее - никак не пойму. что ты в них высчитываешь/фиксируешь?
62 Касандер72
 
06.06.12
12:33
(58) вначале так пробовали - уйма операторов нужна - а сейчас обычные бабульки-работяги с ТСД-ками носятся - и не поверишь: не отобрать!
63 Касандер72
 
06.06.12
12:34
(61) система контролирует остатки продукции на любом маркированном объекте - чтобы знать где чего и сколько лежит
64 Злопчинский
 
06.06.12
12:34
(59) ну так и излагай ясно, на фабоике - процесс "упаковки", на складе - процесс "комплектации"
.
а то утебя и там упаковка и там упаковка.. теперь на фабрику хотите вынести лейбирование под заказы... трындец полный.. причем имхо явно видно что еще толком не продуман процесс изменений, не "посчитан!" по уму, а уже взялись мутузиться с доками, проведениями и прчей хней.. неудивительно что тормозит и прочее с доками и что там еще...
65 Злопчинский
 
06.06.12
12:36
внятного описани ТЕХПРОЦЕССА - так и не дождались. Как будто в школе не учились
Дано:
Требуется:
.
"дано" - максимально "плоский" список-изложение имеющегося. Без "если пришло то, то туда", " а когда вот это то вот так , но может быть и так" - это не дано, а вольное изложение... ;-)
.
короче - пока все не сильно  интересно...
66 Злопчинский
 
06.06.12
12:39
(62) ты меня что, реально УДИВИЛ? нисколько. у меня точно так же - любая обезьяна с улицы через 20 минут может работать самостотельно с ТСД. и останется эта обезъяна или нет - определяется только аккуратностью исполнения выданных заданий.
.
и точно так же маркировщицы (ибо у меня лейбируется не только упаковки, но и штуки товара под конкретных покупателей) - когда нет работы по лейбированию - тоже собирают товар и довольны как слонихи - ибо это позволило им поиметь допденежку к зарплате, а нам - избежать лишку народа на складе.
67 Андрей_Андреич
 
naïve
06.06.12
12:40
(65) Ну Вы с ТС нудные! Даже вникать не хочу - дир всю плешь проел с такой же фигней. ТС - ты просил оптимизировать - я тебе нарисовал. Делай и проверяй. А про бизнеспроцессы тогда отдельную ветку заводи.
68 Касандер72
 
06.06.12
12:40
(65) внятного описания техпроцесса, или сочинения на тему "что я хочу" - даже я не видел)))
не строй иллюзий - у нас госпредприятие, и как правило толпа недоучек, криворуких и прочих инвалидов
и при этом нужно что-то сделать из ничего) и чтобы всем хорошо было)
69 Злопчинский
 
06.06.12
12:40
на самом деле если у вас куча ТСД с которыми носится персонал - то вообще проблема не ясна. Обратитесь к тем, кто вам систему вашу работающую ставил (и видимо более-менее упешно) если уже "2 года работает" - пусть так же по уму и текущие ваши хотелкит прикрутит.. ;-)
70 Злопчинский
 
06.06.12
12:42
(67) ненудным развязным и расхлябанным - можно на шашлыках за городом быть... а впроизводственном прцесе - даже маленьком - нудность и вынос мозга - одна из составляющихх ключей успешности ;-)
71 Касандер72
 
06.06.12
12:43
(67) СПС ОГРОМНЫЙ, напомнил, я и забыл что с составным индексом быстрее будет - все время приходится между задачами переключаться (я ещё штрихкодирование на прядильной фабрике запускаю - правда на 8,2 - полегче)
72 Злопчинский
 
06.06.12
12:44
МультиСчетчик.НайтиЗначение по ТЗ в цикле по выбору строк - тотальная бяка. особенно ттам где надо быстрое проведение.
переделывайте алгоритм так, чтоб ы выбор строк совпадал с линейным движением по ТЗ.
73 Злопчинский
 
06.06.12
12:44
код - модифицировать с использованием объекта "ИндексированнаяТаблица"
74 Касандер72
 
06.06.12
12:45
(72) это ты зря - шуршит куда прикольнее чем перебор - не веришь попробуй - я юзал
75 Мимохожий Однако
 
06.06.12
12:45
Любопытная дискуссия.
76 Злопчинский
 
06.06.12
12:45
(68) знакомая ситуация ;-) и еще желательно - даром.. ;=_)
77 Злопчинский
 
06.06.12
12:46
(74) все зависит от частностей. загони в ТЗ побольше строк и включи  отладчик с замером - и повтыкай на что жрется время...
78 Касандер72
 
06.06.12
12:47
(73) млин, а где я тебе потом замену найду? чтобы слинять отсюда? может у вас и дохера 1С-ников, кто 1С++ юзал, а у нас обычного днем с огнем не сыщешь: скулевые запросы освоить не могут (
79 Андрей_Андреич
 
naïve
06.06.12
12:47
(72) Да - это будет приятнее намного. Только тогда придется определиться, что при проведении документа сортировка строк сменится. Допустимо или нет - не знаю.
(77) Один фик жрать больше всего будет чтение из регистров и запись.
80 Mikeware
 
06.06.12
12:50
"тупой и еще тупее", часть вторая - "это одно и то же лицо".
Про сам процесс Злоп уже сказал - четкого и внятного описания нет (подсказываю: писать его надо так, чтобы понять написанное мог человек с начальным образованием на нерусском языке)
про код: нафига рассчитывать каждый раз, если все равно проведение  выполняется в транзакции, и данные измениться другими документами не могут - можно просто слить в начале все остатки в ТЗ, и крутить ТЗ в момент проведения....
81 Злопчинский
 
06.06.12
12:50
(68) > внятного описания техпроцесса, или сочинения на тему "что я хочу" - даже я не видел)))
не строй иллюзий - у нас госпредприятие, и как правило толпа недоучек, криворуких и прочих инвалидов
.
а ты думаешь где-то принципиально иначе? у меня то же самое. реально нужен грамтоные люди на ключевые точки. остальнон - тупая работа по тупым заданиям. никакого принятия решений и инициативы (по возможности) людям с ТСД.
.
и как всегда - прежде чем программить - долго и нудно рисуем квадратики, стрелочки и прочее "бизнеспроцессирование".
.
фронт работ есть всегда - без работы не останемся.
82 Касандер72
 
06.06.12
12:51
(79) запись - да, сводный остаток - быстро, ещё же нужно признак заказа в справочник штрихкодов упаковок занести для следилки: вот думаю может сделать периодическим и через УстановитьЗначение()
83 Злопчинский
 
06.06.12
12:51
(80) вот и я про то же самое...
84 Андрей_Андреич
 
naïve
06.06.12
12:52
(81) Только каждую работу во фронт превращать не надо. Ох и азартен ты, Парамоша!
85 Злопчинский
 
06.06.12
12:52
(78) а за "тарелку супа" иного и не будет. я например и сам не силен в 1С++, но когда надо - я делаю просто - прощу помощт в КОНКРЕТНОЙ задаче или просто предлагаю задачку+денежку. Пока все успешно решается...
86 Андрей_Андреич
 
naïve
06.06.12
12:53
(82) Это ты что сейчас сказал?
87 Злопчинский
 
06.06.12
12:53
(84) работать надо там  где - интересно! а что может быть интереснее и захватывающее чем вызывающие насилие и ковровое бомбометание?
88 Касандер72
 
06.06.12
12:55
(81) некогда нудно рисовать квадратики,
до грамотных на ключевых точках - своему боссу полчаса разжевывал, дир фабрики - уже дергаться начала,
идеальная организация работы программиста - енто хорошо, но на практике ...
представь что на крупных предприятиях - узкая специализация - и требовать от каждого буха знания плана счетов - дохлый номер
89 Злопчинский
 
06.06.12
12:55
(79) неа, чтение и запись времени жрать много не будут. потому что там где это жрется - это должны быть ПОДГОТОВИТЕЛЬНЫЕ действия, которые НЕКРИТИЧНЫ к реалтайму. а писать в регистры надо уже ГОТОВОЕ ПО ФАКТУ. особенно таки где ТСД и жмаки по ШК.
.
90 Mikeware
 
06.06.12
12:56
(88)
"- мужик, ты топор-то наточи!!!
-- некогда точить, мне рубить надо!"©
91 Андрей_Андреич
 
naïve
06.06.12
12:57
(89) Думаешь у меня на компе капслока нету? :)
92 Злопчинский
 
06.06.12
12:57
(88) согласен совершенно.
но в "бухгалтерии" есть "ГЛАВБУХ", который знает как должно быть, почему, как этого добиться - в том числе не только техническими но и организационными мерами. если "ГБ" - нет. пиши пропало. если сторонний "аудитор" - а это дело весьма тонкое - ибо у ниего задача не сделать тебе хорошо а нарубить бабала себе.
93 Mikeware
 
06.06.12
12:57
(83) угу, прочитал уже. Просто я еще по телефону разговариваю, на почту отвечаю и в мизде миздоболю...
94 Касандер72
 
06.06.12
12:57
(90) ну как-то так ...)
95 Касандер72
 
06.06.12
12:58
(92) это ты щас неподумвши сказал ))))
96 Злопчинский
 
06.06.12
12:59
(92) согласие по (88) не включает в себя согласие с "некогда рисовать квадратики".
- Надо, Федя, надо.
.
у меня например в конторе - ща реальные тяжелые затыки (славбогу не на моем участке ответсвенности), а почему - да тоже все некогда было "рисовать", все быстрее рубить надо было... нарубили.. хз знает чего.. ;-)
97 Злопчинский
 
06.06.12
13:00
+(89) - уходите нафиг от концепции многострочных документов в ОПЕРАТВИТНОЙ работе. там где надо что-то РЕГСИТРИРОВАТЬ и регистрировать быстро - однострочный документ-атом. а там где надо что-то собрать/сконсолидировать - уже работат "как обычно".. ;-) как-то так...
98 Mikeware
 
06.06.12
13:02
(96) а я сдуру разрешил управление бизнес-процессами (в программе, у меня оно онлайновое) финдиру.. он накуролесил. сделал изменения "для своих", но вот про конечные результаты "в целом" не продумал... получилась куча двойных вывозов, и прочей фигни...
99 Андрей_Андреич
 
naïve
06.06.12
13:02
Все-таки согласен, что начинать надо с организации работ.
Для ускорения проведения документов предлагаю всем бабкам, бегающим с ТСД, намазать пятки скипидаром или выдать роликовые коньки.
100 Mikeware
 
06.06.12
13:02
(97) не согласен. атомарная операция - не значит "одна строка"
101 Касандер72
 
06.06.12
13:02
(98) а при наших объемах инфы не заипаемся атомами оперить?
102 Mikeware
 
06.06.12
13:03
(99) можно просто тампаксы скипидаром смачивать...
103 Касандер72
 
06.06.12
13:03
(99) не прокатит - они и так возле компов кучкуются - очереди ждут
104 Андрей_Андреич
 
naïve
06.06.12
13:03
(97) Что это было?
105 Mikeware
 
06.06.12
13:04
(101) смотря как организуешь.....
106 Касандер72
 
06.06.12
13:05
Прикол хотите, могу кинуть сюда модуль проведения нашей накладной - который превратился в такой из-за быстрых  хотелок руководства - только потом на здоровье не жалиться)
107 Mikeware
 
06.06.12
13:08
(106) НЕНАДА!!! твоих примеров кода хватило...
108 Андрей_Андреич
 
naïve
06.06.12
13:08
(105) Ну только если делать по аналогии чеки за день = отчет ККМ - тогда да. Но это же все думать надо, а автору некогда.
Кстати, ТС - мотай в Москву и срочно. На таком месте только здоровье угробишь - ни денег, ни квалификации не наработаешь.
109 Касандер72
 
06.06.12
13:09
Ощутите себя суперменами в 1С-ке - его делало несколько поколений прогеров (внутренние функции не разворачиваю - места не хватит):


Процедура ОбработкаПроведения() Далее
Процедура ОбработкаУдаленияПроведения() Далее

//*************************************************************************************
Процедура ОбработкаПроведения()
   
   текКурс = Валюта.Курс.Получить(ДатаДок);
   текОкр = Константа.ОсновнаяВалюта.ОкрСумм.Получить(ДатаДок);
   
   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
                       //  ЗАПИСЬ В РЕГИСТР ПРОДАЖ
       Регистр.новПродажи.Номенклатура = Номенклатура;
       Регистр.новПродажи.Размер = Обмер;
       Регистр.новПродажи.Цвет = Цвет;
       Регистр.новПродажи.Сорт = Сорт;
       Регистр.новПродажи.Валюта = Валюта;        
       Регистр.новПродажи.Скидка = Скидка;
       Регистр.новПродажи.Склад = Склад;
       Регистр.новПродажи.Контрагент = Контрагент;
       Регистр.новПродажи.ВидПоставки = ВидПоставки;
       Регистр.новПродажи.ЦельПриобретения = ЦельП;
       Регистр.новПродажи.ПроданоИзделий = Итого;
       Регистр.новПродажи.ПроданоЕдиниц = ИтогоШт;
       Регистр.новПродажи.ПроданоСтоимость = Сумма;
       Регистр.новПродажи.ПроданоСуммаНДС = СуммаНДС;
       Регистр.новПродажи.ПроданоВсегоСНДС = СуммаСНДС;
       Регистр.новПродажи.РеализИзделий = Итого;
       Регистр.новПродажи.РеализЕдиниц = ИтогоШт;
       Регистр.новПродажи.РеализСтоимость = Сумма;
       Регистр.новПродажи.РеализСуммаНДС = СуммаНДС;
       Регистр.новПродажи.РеализВсегоСНДС = СуммаСНДС;
       Регистр.новПродажи.ПриказНаСкидки = ПриказНаОптовыеСкидки;
       Регистр.новПродажи.ДвижениеВыполнить();
                   //  расчет сумм в основной валюте по курсу
       Если не (Валюта = Константа.ОсновнаяВалюта) Тогда
           Регистр.новПродажи.Номенклатура = Номенклатура;
           Регистр.новПродажи.Размер = Обмер;
           Регистр.новПродажи.Цвет = Цвет;
           Регистр.новПродажи.Сорт = Сорт;
           Регистр.новПродажи.Валюта = Константа.ОсновнаяВалюта;
           Регистр.новПродажи.Скидка = Скидка;
           Регистр.новПродажи.Склад = Склад;
           Регистр.новПродажи.Контрагент = Контрагент;
           Регистр.новПродажи.ВидПоставки = ВидПоставки;
           Регистр.новПродажи.ЦельПриобретения = ЦельП;
           Регистр.новПродажи.ПроданоИзделий = Итого;
           Регистр.новПродажи.ПроданоЕдиниц = ИтогоШт;
           Регистр.новПродажи.ПроданоСтоимость = Окр(Сумма*текКурс,текОкр,1);
           Регистр.новПродажи.ПроданоСуммаНДС = Окр(СуммаНДС*текКурс,текОкр,1);
           Регистр.новПродажи.ПроданоВсегоСНДС = Окр(СуммаСНДС*текКурс,текОкр,1);
           Регистр.новПродажи.РеализИзделий = Итого;
           Регистр.новПродажи.РеализЕдиниц = ИтогоШт;
           Регистр.новПродажи.РеализСтоимость = Окр(Сумма*текКурс,текОкр,1);
           Регистр.новПродажи.РеализСуммаНДС = Окр(СуммаНДС*текКурс,текОкр,1);
           Регистр.новПродажи.РеализВсегоСНДС = Окр(СуммаСНДС*текКурс,текОкр,1);
           Регистр.новПродажи.ПриказНаСкидки = ПриказНаОптовыеСкидки;
           Регистр.новПродажи.ДвижениеВыполнить();
       КонецЕсли;        
                   //  ЗАПИСЬ В РЕГИСТР ОСТАТКОВ
       Регистр.ОстаткиТоваров.ПривязыватьСтроку(НомерСтроки);
       Регистр.ОстаткиТоваров.Номенклатура = Номенклатура;
       Регистр.ОстаткиТоваров.КатегорияКачества = Номенклатура.Категория;
       Регистр.ОстаткиТоваров.Сорт = Сорт;
       Регистр.ОстаткиТоваров.Обмер = Обмер;
       Регистр.ОстаткиТоваров.Цвет = Цвет;
       Регистр.ОстаткиТоваров.Единица = Единица;
       Регистр.ОстаткиТоваров.Склад = Склад;
       Регистр.ОстаткиТоваров.Остаток = Количество;
       Регистр.ОстаткиТоваров.Количество = Итого;
       Регистр.ОстаткиТоваров.КоличествоШт = ИтогоШт;
       Регистр.ОстаткиТоваров.ДляОтчётов = ОтгрузкаНаСкладХранения;
       Если ОтгрузкаНаСкладХранения = 1 Тогда
           Регистр.ОстаткиТоваров.Оператив = Перечисление.Оперативы.ОтгрузкаСоСкладаВнешнему;
       ИначеЕсли Склад.СкладХранения = 1 Тогда
           Регистр.ОстаткиТоваров.Оператив = Перечисление.Оперативы.ОтгрузкаВнешнегоПокупателю;
       Иначе//Если Склад.СкладХранения = 0 Тогда
           Регистр.ОстаткиТоваров.Оператив = Перечисление.Оперативы.ОтгрузкаСоСкладаПокупателю;
       КонецЕсли;
       Регистр.ОстаткиТоваров.ДвижениеРасходВыполнить();
                   //  ЕСЛИ ОТГРУЗКА НА ВНЕШНИЙ СКЛАД
       Если ОтгрузкаНаСкладХранения = 1 Тогда
           Регистр.ОстаткиТоваров.ПривязыватьСтроку(НомерСтроки);
           Регистр.ОстаткиТоваров.Номенклатура = Номенклатура;
           Регистр.ОстаткиТоваров.Сорт = Сорт;
           Регистр.ОстаткиТоваров.Обмер = Обмер;
           Регистр.ОстаткиТоваров.Единица = Единица;
           Регистр.ОстаткиТоваров.Склад = СкладБ;
           Регистр.ОстаткиТоваров.КатегорияКачества = Номенклатура.Категория;
           Регистр.ОстаткиТоваров.Цвет = Цвет;
           Регистр.ОстаткиТоваров.Остаток = Количество;
           Регистр.ОстаткиТоваров.Количество = Итого;
           Регистр.ОстаткиТоваров.КоличествоШт = ИтогоШТ;
           Регистр.ОстаткиТоваров.ДляОтчётов = 1;
           Регистр.ОстаткиТоваров.Оператив = Перечисление.Оперативы.ОтгрузкаСоСкладаВнешнему;
           Регистр.ОстаткиТоваров.ДвижениеПриходВыполнить();
       КонецЕсли;        
   КонецЦикла;
                       //  ПРОВЕДЕНИЕ ПО РЕГИСТРУ ОБОРОТОВ
   тазОбороты = СоздатьОбъект("ТаблицаЗначений");
   ВыгрузитьТабличнуюЧасть(тазОбороты,"Номенклатура,Сорт,Обмер,Цвет,Итого,ИтогоШт");
   тазОбороты.Свернуть("Номенклатура,Сорт,Обмер,Цвет","Итого,ИтогоШт");
   тазОбороты.ВыбратьСтроки();
   Пока тазОбороты.ПолучитьСтроку() = 1 Цикл
       Регистр.ОборотыСклада.Номенклатура = тазОбороты.Номенклатура;
       Регистр.ОборотыСклада.Сорт = тазОбороты.Сорт;
       Регистр.ОборотыСклада.Размер = тазОбороты.Обмер;
       Регистр.ОборотыСклада.Цвет = тазОбороты.Цвет;
       Регистр.ОборотыСклада.Склад = Склад;
       Регистр.ОборотыСклада.Изделий = тазОбороты.Итого;
       Регистр.ОборотыСклада.Единиц = тазОбороты.ИтогоШт;        
       Регистр.ОборотыСклада.ДвижениеРасходВыполнить();

       Если ОтгрузкаНаСкладХранения = 1 Тогда
           Регистр.ОборотыСклада.Номенклатура = тазОбороты.Номенклатура;
           Регистр.ОборотыСклада.Сорт = тазОбороты.Сорт;
           Регистр.ОборотыСклада.Размер = тазОбороты.Обмер;
           Регистр.ОборотыСклада.Цвет = тазОбороты.Цвет;
           Регистр.ОборотыСклада.Склад = СкладБ;
           Регистр.ОборотыСклада.Изделий = тазОбороты.Итого;
           Регистр.ОборотыСклада.Единиц = тазОбороты.ИтогоШт;
           Регистр.ОборотыСклада.ДвижениеПриходВыполнить();
       КонецЕсли;
   КонецЦикла;
                       //  ЗАПИСЬ В РЕЗЕРВ ПО СТАРОЙ СХЕМЕ
   //Если флРасчётПоНовойСхеме = 0 Тогда
   //    докОснование = СоздатьОбъект("Документ");
   //    Если докОснование.НайтиДокумент(ДокументОснование) = 1 Тогда
   //        докОснование.ВыбратьСтроки();
   //        Пока докОснование.ПолучитьСтроку() = 1 Цикл
   //            Регистр.Резерв.ПривязыватьСтроку(докОснование.НомерСтроки);
   //            Регистр.Резерв.Номенклатура = докОснование.Номенклатура;
   //            Регистр.Резерв.Сорт = докОснование.Сорт;
   //            Регистр.Резерв.Склад = докОснование.Склад;
   //            Регистр.Резерв.Количество = докОснование.Итого;
   //            Регистр.Резерв.КоличествоШт = докОснование.ИтогоШт;
   //            Регистр.Резерв.ДвижениеРасходВыполнить();    
   //        КонецЦикла;
   //    КонецЕсли;  
   //КонецЕсли;    
                       // ПРОВЕДЕНИЕ ОПЕРАЦИИ БУХГАЛТЕРСКИХ ИТОГОВ
   Если (ДатаДок>=Константа.ДатаНачалаВЭС) и не(Контрагент.Принадлежность=Перечисление.Принадлежность.РезидентРБ) Тогда
       СчВЗ=СчетПоКоду("64.2");
       Сч62=СчетПоКоду("62.2");        
       СумОп=Окр(Итог("СуммаСНДС")*Валюта.Курс.Получить(ДатаДок)/Валюта.Кратность.Получить(ДатаДок),0,1);
       глСформироватьПроводки(Контекст,Сч62,СчетПоКоду("46.2"),Валюта,,СумОп,Итог("СуммаСНДС"),Контрагент,ТекущийДокумент(),Перечисление.ОплатаЗа.Трикотаж,,,,"Реализация товаров","");        
       Ит=СоздатьОбъект("БухгалтерскиеИтоги");
       Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент,2);
       Ит.ИспользоватьСубконто(ВидыСубконто.ОплатаЗа,Перечисление.ОплатаЗа.Трикотаж,2);
       Ит.ИспользоватьСубконто(ВидыСубконто.Документ,,1);
       Ит.ВЫполнитьЗапрос(,,СчВЗ,,Валюта);
       Ит.ВыбратьСубконто(3);
       ОстСумма=Итог("СуммаСНДС");
       Пока (Ит.ПолучитьСубконто(3)=1)и(ОстСумма>0) Цикл
           Если Ит.СКК(2)>0 Тогда
               Если Ит.СКК(2)>ОстСумма Тогда
                   СумОп=Окр(ОстСумма*Валюта.Курс.Получить(Ит.Субконто(3).ДатаДок)/Валюта.Кратность.Получить(Ит.Субконто(3).ДатаДок),0,1);
                   глСформироватьПроводки(Контекст,СчВЗ,Сч62,Валюта,,СумОп,ОстСумма,Контрагент,Ит.Субконто(3),Перечисление.ОплатаЗа.Трикотаж,Контрагент,ТекущийДокумент(),Перечисление.ОплатаЗа.Трикотаж,"Оплата от клиента","");
                   ОстСумма=0;
               Иначе
                   СумОп=Окр(Ит.СКК(2)*Валюта.Курс.Получить(Ит.Субконто(3).ДатаДок)/Валюта.Кратность.Получить(Ит.Субконто(3).ДатаДок),0,1);
                   глСформироватьПроводки(Контекст,СчВЗ,Сч62,Валюта,,СумОп,Ит.СКК(2),Контрагент,Ит.Субконто(3),Перечисление.ОплатаЗа.Трикотаж,Контрагент,ТекущийДокумент(),Перечисление.ОплатаЗа.Трикотаж,"Оплата от клиента","");
                   ОстСумма=ОстСумма-Ит.СКК(2);
               КонецЕсли;
           КонецЕсли;    
       КонецЦикла;    
       Операция.СуммаОперации=Итог("СуммаСНДС");
       Операция.Содержание="Продажа товаров";
       Операция.Записать();    
   КонецЕсли;
                       //  ЗАПИСЬ В РЕГИСТР РЕАЛИЗАЦИИ
   текРегион = ?(Контрагент.Резидент=1,СокрЛП(Контрагент.Область),СокрЛП(Контрагент.НасПункт.Страна));
   текОтчетГруппа = ?(Контрагент.Резидент=1,СокрЛП(Контрагент.ФормаСоб),СокрЛП(ВидОплаты));
   тазРеализации = СоздатьОбъект("ТаблицаЗначений");
   ВыгрузитьТабличнуюЧасть(тазРеализации);
   тазРеализации.Свернуть("СекцияИзделия,Возраст,СтавкаНДС","Итого,ИтогоШт,Сумма,СуммаНДС,СуммаСНДС");
   тазРеализации.ВыбратьСтроки();
   Пока тазРеализации.ПолучитьСтроку() = 1 Цикл
       Регистр.новРеализация.ВидДокумента = Перечисление.ВидыДокументов.Накладная;
       Регистр.новРеализация.Склад = Склад;
       Регистр.новРеализация.ВидПоставки = ВидПоставки;
       Регистр.новРеализация.ЦельПриобретения = ЦельП;
       Регистр.новРеализация.Регион = текРегион;
       Регистр.новРеализация.ОтчетГруппа = текОтчетГруппа;
       Регистр.новРеализация.Контрагент = Контрагент;
       Регистр.новРеализация.Секция = тазРеализации.СекцияИзделия;
       Регистр.новРеализация.Возраст = тазРеализации.Возраст;
       Регистр.новРеализация.СтавкаНДС = тазРеализации.СтавкаНДС.Ставка;        
       Регистр.новРеализация.Валюта = Валюта;
       Регистр.новРеализация.Единиц = тазРеализации.ИтогоШт;
       Регистр.новРеализация.Изделий = тазРеализации.Итого;
       Регистр.новРеализация.Стоимость = тазРеализации.Сумма;
       Регистр.новРеализация.СуммаНДС = тазРеализации.СуммаНДС;
       Регистр.новРеализация.ВсегоСНДС = тазРеализации.СуммаСНДС;        
       Регистр.новРеализация.ДвижениеВыполнить();
       
       Если не (Валюта = Константа.ОсновнаяВалюта) Тогда
           Регистр.новРеализация.ВидДокумента = Перечисление.ВидыДокументов.Накладная;
           Регистр.новРеализация.Склад = Склад;
           Регистр.новРеализация.ВидПоставки = ВидПоставки;
           Регистр.новРеализация.ЦельПриобретения = ЦельП;
           Регистр.новРеализация.Регион = текРегион;
           Регистр.новРеализация.ОтчетГруппа = текОтчетГруппа;
           Регистр.новРеализация.Контрагент = Контрагент;
           Регистр.новРеализация.Секция = тазРеализации.СекцияИзделия;
           Регистр.новРеализация.Возраст = тазРеализации.Возраст;
           Регистр.новРеализация.СтавкаНДС = тазРеализации.СтавкаНДС.Ставка;        
           Регистр.новРеализация.Валюта = Константа.ОсновнаяВалюта;
           Регистр.новРеализация.Единиц = тазРеализации.ИтогоШт;
           Регистр.новРеализация.Изделий = тазРеализации.Итого;            
           Регистр.новРеализация.Стоимость = Окр(тазРеализации.Сумма*текКурс,текОкр,1);
           Регистр.новРеализация.СуммаНДС = Окр(тазРеализации.СуммаНДС*текКурс,текОкр,1);
           Регистр.новРеализация.ВсегоСНДС = Окр(тазРеализации.СуммаСНДС*текКурс,текОкр,1);
           Регистр.новРеализация.ДвижениеВыполнить();
       КонецЕсли;
   КонецЦикла;
   
   тазРеализации.НоваяКолонка("ДляСвертки");
   тазРеализации.Свернуть("ДляСвертки","Итого,ИтогоШт,Сумма,СуммаНДС,СуммаСНДС");
   тазРеализации.ВыбратьСтроки();
   Пока тазРеализации.ПолучитьСтроку() = 1 Цикл
       Регистр.новРеализация.ВидДокумента = Перечисление.ВидыДокументов.Накладная;
       Регистр.новРеализация.Склад = Склад;
       Регистр.новРеализация.ВидПоставки = ВидПоставки;
       Регистр.новРеализация.ЦельПриобретения = ЦельП;
       Регистр.новРеализация.Регион = текРегион;
       Регистр.новРеализация.ОтчетГруппа = текОтчетГруппа;
       Регистр.новРеализация.Контрагент = Контрагент;
       Регистр.новРеализация.Секция = ПолучитьПустоеЗначение("Перечисление.Секция");
       Регистр.новРеализация.Возраст = ПолучитьПустоеЗначение("Перечисление.Возраст");
       Регистр.новРеализация.СтавкаНДС = -1;        
       Регистр.новРеализация.Валюта = Валюта;
       Регистр.новРеализация.Единиц = тазРеализации.ИтогоШт;
       Регистр.новРеализация.Изделий = тазРеализации.Итого;
       Регистр.новРеализация.Стоимость = тазРеализации.Сумма;
       Регистр.новРеализация.СуммаНДС = тазРеализации.СуммаНДС;
       Регистр.новРеализация.ВсегоСНДС = тазРеализации.СуммаСНДС;        
       Регистр.новРеализация.ДвижениеВыполнить();
       
       Если не (Валюта = Константа.ОсновнаяВалюта) Тогда
           Регистр.новРеализация.ВидДокумента = Перечисление.ВидыДокументов.Накладная;
           Регистр.новРеализация.Склад = Склад;
           Регистр.новРеализация.ВидПоставки = ВидПоставки;
           Регистр.новРеализация.ЦельПриобретения = ЦельП;
           Регистр.новРеализация.Регион = текРегион;
           Регистр.новРеализация.ОтчетГруппа = текОтчетГруппа;
           Регистр.новРеализация.Контрагент = Контрагент;
           Регистр.новРеализация.Секция = ПолучитьПустоеЗначение("Перечисление.Секция");
           Регистр.новРеализация.Возраст = ПолучитьПустоеЗначение("Перечисление.Возраст");
           Регистр.новРеализация.СтавкаНДС = -1;
           Регистр.новРеализация.Валюта = Константа.ОсновнаяВалюта;
           Регистр.новРеализация.Единиц = тазРеализации.ИтогоШт;
           Регистр.новРеализация.Изделий = тазРеализации.Итого;            
           Регистр.новРеализация.Стоимость = Окр(тазРеализации.Сумма*текКурс,текОкр,1);
           Регистр.новРеализация.СуммаНДС = Окр(тазРеализации.СуммаНДС*текКурс,текОкр,1);
           Регистр.новРеализация.ВсегоСНДС = Окр(тазРеализации.СуммаСНДС*текКурс,текОкр,1);
           Регистр.новРеализация.ДвижениеВыполнить();
       КонецЕсли;
   КонецЦикла;
   
   тазРасхода = СоздатьОбъект("ТаблицаЗначений");
   тазРасхода.НоваяКолонка("Номенклатура","Справочник.Номенклатура");
   тазРасхода.НоваяКолонка("Обмер","Справочник.Размеры");
   тазРасхода.НоваяКолонка("Цвет","Справочник.Цвета");
   тазРасхода.НоваяКолонка("Сорт","Перечисление.Сорт");
   тазРасхода.НоваяКолонка("Комплект","Число",2,0);
   тазРасхода.НоваяКолонка("ОбъектКонтроля","Справочник.ОбъектыКонтроля");
   тазРасхода.НоваяКолонка("Упаковок","Число",10,0);
   тазРасхода.НоваяКолонка("Изделий","Число",10,0);
   тазРасхода.НоваяКолонка("Единиц","Число",10,0);
                       //  РЕГИСТРАЦИЯ ПЕРЕМЕЩЕНИЯ ИЗДЕЛИЙ
   докДетализация = СоздатьОбъект("Документ.НакладнаяНаОтгрузку2");    
   БезУпаковки = ПолучитьПустоеЗначение("Справочник.ШтрихкодыУпаковок");
   Если ПустоеЗначение(Детализация) = 0 Тогда
       докДетализация.НайтиДокумент(Детализация);
       Если докДетализация.Выбран() = 1 Тогда
           докДетализация.ВыбратьСтроки();
           Пока докДетализация.ПолучитьСтроку() = 1 Цикл
               Если докДетализация.ТипЕдиницы = Перечисление.Составляющие.Изделие Тогда
                   
                   тазРасхода.НоваяСтрока();
                   тазРасхода.Номенклатура = докДетализация.ШтрихкодЕдиницы.Номенклатура;
                   тазРасхода.Обмер = докДетализация.ШтрихкодЕдиницы.Обмер;
                   тазРасхода.Цвет = докДетализация.ШтрихкодЕдиницы.Цвет;
                   тазРасхода.Сорт = докДетализация.ШтрихкодЕдиницы.Сорт;
                   тазРасхода.Комплект = 1;
                   тазРасхода.ОбъектКонтроля = докДетализация.ШтрихкодЕдиницы.ОбъектКонтроля;
                   тазРасхода.Упаковок = 1;
                   тазРасхода.Изделий = 1;
                   тазРасхода.Единиц = докДетализация.ШтрихкодЕдиницы.Номенклатура.Количество;
                   
                   глРасшитьУпаковкуИзделия(докДетализация.ШтрихкодЕдиницы,ТекущийДокумент());
                   глПеремещениеИзделия(докДетализация.ШтрихкодЕдиницы,Перечисление.ОперацииСизделиями.ОтгрузкаПокупателю,докДетализация.ОбъектОтгрузки,ТекущийДокумент(),БезУпаковки);
                   
               ИначеЕсли докДетализация.ТипЕдиницы = Перечисление.Составляющие.Упаковка Тогда
                   
                   тазРасхода.НоваяСтрока();
                   тазРасхода.Номенклатура = докДетализация.ШтрихкодЕдиницы.Номенклатура;
                   тазРасхода.Обмер = докДетализация.ШтрихкодЕдиницы.Обмер;
                   тазРасхода.Цвет = докДетализация.ШтрихкодЕдиницы.Цвет;
                   тазРасхода.Сорт = докДетализация.ШтрихкодЕдиницы.Сорт;
                   тазРасхода.Комплект = докДетализация.ШтрихкодЕдиницы.Количество;
                   тазРасхода.ОбъектКонтроля = глОбъектКонтроляУпаковки(докДетализация.ШтрихкодЕдиницы);
                   тазРасхода.Упаковок = 1;
                   тазРасхода.Изделий = докДетализация.ШтрихкодЕдиницы.Количество;
                   тазРасхода.Единиц = докДетализация.ШтрихкодЕдиницы.Количество * докДетализация.ШтрихкодЕдиницы.Номенклатура.Количество;
                   
                   глПеремещениеУпаковки(докДетализация.ШтрихкодЕдиницы,Перечисление.ОперацииСизделиями.ОтгрузкаПокупателю,докДетализация.ОбъектОтгрузки,ТекущийДокумент());
                   
               КонецЕсли;
           КонецЦикла;
       КонецЕсли;
   КонецЕсли;
   
   Если (ТекущаяДата() - ДатаДок)>=30 Тогда
       глЗаписатьПодозрительныйДок(ТекущийДокумент());
   КонецЕсли;
   тазРасхода.Свернуть("Номенклатура,Обмер,Цвет,Сорт,Комплект,ОбъектКонтроля","Упаковок,Изделий,Единиц");
   тазРасхода.ВыбратьСтроки();
   Пока тазРасхода.ПолучитьСтроку() = 1 Цикл
       Регистр.новОстатки.Номенклатура = тазРасхода.Номенклатура;
       Регистр.новОстатки.Обмер = тазРасхода.Обмер;
       Регистр.новОстатки.Цвет = тазРасхода.Цвет;
       Регистр.новОстатки.Сорт = тазРасхода.Сорт;
       Регистр.новОстатки.Комплект = тазРасхода.Комплект;
       Регистр.новОстатки.ОбъектКонтроля = тазРасхода.ОбъектКонтроля;
       Регистр.новОстатки.Упаковок = тазРасхода.Упаковок;
       Регистр.новОстатки.Изделий = тазРасхода.Изделий;
       Регистр.новОстатки.Единиц = тазРасхода.Единиц;
       Регистр.новОстатки.ДвижениеРасходВыполнить();
       
       Если тазРасхода.ОбъектКонтроля.ПризнакРезерва = 1 Тогда
           Регистр.новРезерв.Номенклатура = тазРасхода.Номенклатура;
           Регистр.новРезерв.Сорт = тазРасхода.Сорт;
           Регистр.новРезерв.Размер = тазРасхода.Обмер;
           Регистр.новРезерв.Цвет = тазРасхода.Цвет;
           Регистр.новРезерв.Склад = тазРасхода.ОбъектКонтроля.Склад;
           Регистр.новРезерв.Упаковок = тазРасхода.Упаковок;
           Регистр.новРезерв.Изделий = тазРасхода.Изделий;
           Регистр.новРезерв.Единиц = тазРасхода.Единиц;            
           Регистр.новРезерв.ДвижениеРасходВыполнить();
       КонецЕсли;
   КонецЦикла;
   
   // создание файла *.DBF
   //ДБФ = СоздатьОбъект("XBase");
   //
   //ДБФ.ДобавитьПоле("vozr",2,20,0);
   //ДБФ.ДобавитьПоле("stnds",1,5,2);
   //ДБФ.ДобавитьПоле("itogo",1,18,0);
   //ДБФ.ДобавитьПоле("summa",1,18,0);
   //ДБФ.ДобавитьПоле("sumnds",1,18,0);
   //ДБФ.ДобавитьПоле("sumsnds",1,18,0);
   //ДБФ.ДобавитьПоле("kolvo",1,18,0);
   //ДБФ.ДобавитьПоле("massa",1,12,3);
   //
   //ДБФ.ДобавитьПоле("ynpgo",2,9,0); // Грузоотправитель
   //ДБФ.ДобавитьПоле("ynpgp",2,9,0); // Грузополучатель
   //ДБФ.ДобавитьПоле("zak",2,9,0); // Заказчик автомобильной перевозки (плательщик)
   //
   //ДБФ.СоздатьФайл("D:\1CDB\PolesieTTN\N" + Прав(СокрЛП(Строка(НомерДок)),6) + ".DBF");
   //
   //Если ДБФ.Открыта()=0 Тогда
   //    Сообщить("Не удалось создать ДБФ файл!");
   //КонецЕсли;
   //
   //тазИтогов = СоздатьОбъект("ТаблицаЗначений");
   //ВыгрузитьТабличнуюЧасть(тазИтогов);
   //тазИтогов.Свернуть("Возраст,СтавкаНДС","Итого,Сумма,СуммаНДС,СуммаСНДС,Количество,Масса");
   //тазИтогов.Сортировать("+Возраст,+СтавкаНДС");
   //
   //тазИтогов.ВыбратьСтроки();
   //Пока тазИтогов.ПолучитьСтроку()=1 Цикл
   //    Состояние("Выполняется выгрузка в ДБФ.");
   //    ДБФ.Добавить();
   //    
   //    Если тазИтогов.Возраст = Перечисление.Возраст.Взрослый Тогда
   //        ДБФ.vozr = "Взрослый";
   //    ИначеЕсли тазИтогов.Возраст = Перечисление.Возраст.Детский Тогда
   //        ДБФ.vozr = "Детский";
   //    Иначе
   //        ДБФ.vozr = "Прочий";
   //    КонецЕсли;
   //    
   //    ДБФ.stnds = тазИтогов.СтавкаНДС.Ставка;
   //    ДБФ.itogo = тазИтогов.Итого;
   //    ДБФ.summa = тазИтогов.Сумма;
   //    ДБФ.sumnds = тазИтогов.СуммаНДС;
   //    ДБФ.sumsnds = тазИтогов.СуммаСНДС;
   //    ДБФ.kolvo = тазИтогов.Количество;
   //    ДБФ.massa = тазИтогов.Масса;
   //    ДБФ.ynpgo = СокрЛП(Отправитель.ОбщийУН);
   //    ДБФ.ynpgp = СокрЛП(Контрагент.ОбщийУН);
   //    ДБФ.zak = СокрЛП(Заказчик.ОбщийУН);
   //    ДБФ.Записать();
   //КонецЦикла;
   //
   //Если флТранспортныеРасходы = 1 Тогда
   //    ДБФ.Добавить();
   //    ДБФ.vozr = "ТранспортныеРасходы";
   //    ДБФ.stnds = ТРСтавкаНДС;
   //    ДБФ.summa = ТРСтоимость;
   //    ДБФ.sumnds = ТРСуммаНДС;
   //    ДБФ.sumsnds = ТРСуммаСНДС;
   //    ДБФ.ynpgo = СокрЛП(Отправитель.ОбщийУН);
   //    ДБФ.ynpgp = СокрЛП(Контрагент.ОбщийУН);
   //    ДБФ.zak = СокрЛП(Заказчик.ОбщийУН);
   //    ДБФ.Записать();
   //КонецЕсли;
   //
   //ДБФ.Добавить();
   //ДБФ.vozr = "Итого";
   //ДБФ.itogo = тазИтогов.Итог("Итого");
   //ДБФ.summa = тазИтогов.Итог("Сумма") + ТРСтоимость;
   //ДБФ.sumnds = тазИтогов.Итог("СуммаНДС")+ТРСуммаНДС;
   //ДБФ.sumsnds = тазИтогов.Итог("СуммаСНДС")+ТРСуммаСНДС;
   //ДБФ.kolvo = тазИтогов.Итог("Количество");
   //ДБФ.massa = тазИтогов.Итог("Масса");
   //ДБФ.ynpgo = СокрЛП(Отправитель.ОбщийУН);
   //ДБФ.ynpgp = СокрЛП(Контрагент.ОбщийУН);
   //ДБФ.zak = СокрЛП(Заказчик.ОбщийУН);
   //ДБФ.Записать();
   //
   //ДБФ.ЗакрытьФайл();
   //-создание файла *.DBF
   
КонецПроцедуры // ОбработкаПроведения()
//*************************************************************************************
Процедура ОбработкаУдаленияПроведения()
   
   Если НаУчете = 1 Тогда
       Если (НазваниеНабораПрав()<>"Администратор") и (НазваниеНабораПрав()<>"БухгалтерияСклада") Тогда
           Предупреждение("Данная Накладная взята на учет Бухгалтером склада !"
           +РазделительСтрок+"Для отмены проведения необходимо снять её с учёта.");
           СтатусВозврата(0); Возврат;
       КонецЕсли;
   КонецЕсли;
   
   докДетализация = СоздатьОбъект("Документ.НакладнаяНаОтгрузку2");    
   БезУпаковки = ПолучитьПустоеЗначение("Справочник.ШтрихкодыУпаковок");
   Если ПустоеЗначение(Детализация) = 0 Тогда
       докДетализация.НайтиДокумент(Детализация);
       Если докДетализация.Выбран() = 1 Тогда
           докДетализация.ВыбратьСтроки();
           Пока докДетализация.ПолучитьСтроку() = 1 Цикл
               Если докДетализация.ТипЕдиницы = Перечисление.Составляющие.Изделие Тогда
                   глПеремещениеИзделия(докДетализация.ШтрихкодЕдиницы,Перечисление.ОперацииСизделиями.ОтменаОтгрузки,докДетализация.ОбъектОтгрузки,ТекущийДокумент(),БезУпаковки);
               ИначеЕсли докДетализация.ТипЕдиницы = Перечисление.Составляющие.Упаковка Тогда
                   глПеремещениеУпаковки(докДетализация.ШтрихкодЕдиницы,Перечисление.ОперацииСизделиями.ОтменаОтгрузки,докДетализация.ОбъектОтгрузки,ТекущийДокумент());
               КонецЕсли;
           КонецЦикла;
       КонецЕсли;
   КонецЕсли;
   
КонецПроцедуры // ОбработкаУдаленияПроведения()
//*************************************************************************************
110 Касандер72
 
06.06.12
13:10
Ну надеюсь теперь ветку на пятничную можно переименовать)))
111 Андрей_Андреич
 
naïve
06.06.12
13:13
(110) И что ты чужим кодом хвастаешься? Кстати, код как код. У меня своего такого мегабайты.
112 Касандер72
 
06.06.12
13:15
(111) не совсем чужой - большая часть моя - что мог подмодерил насколько руки дошли
а модуль формы документа мне удалось сократить до 11000 строк)
113 Mikeware
 
06.06.12
13:18
тазОбороты, глЗаписатьПодозрительныйДокумент... забавно..
реализации вместе с перемещениями. обороты склада...  такое ощущение, что это не белоруссия, а казахстан, причем центр чуйской долины...
114 Злопчинский
 
06.06.12
13:19
(100) все зависит от частности/конкретики. где-то атм = 1 строка, а где-то 1 день или квартал ;-)
115 Злопчинский
 
06.06.12
13:19
(113) угу..
116 Касандер72
 
06.06.12
13:21
(113) да по фигу каково название - досталось по наследству
а подозреные документы - фигня, к справочнику контрагентов - та ещё следилка прикручена)))
117 Mikeware
 
06.06.12
13:23
(116) следилок у всех достаточно.
повесь триггер на 1сДжорн, и будет тебе счастье...
118 Злопчинский
 
06.06.12
13:23
(111) присоединяюсь.. вообще это тотальная болезнь "сделать быстро"... - таковы реалии нашего сейчас. главное - все-таки делать быстро - но сбалансировано - где надо - можно и схалтурить , но в некоторых моментах - стоять насмерть. я вот от конторы был отвалился месяцев на 8 - вообще не появлялся, да и сисадмин мой тоже - срулили на другой проект. ну и что - контора успешно пережила и нигде не застопорилась. все работало тикитак.
.
теперь вот очередные вкусности надо делать, причем тривиальные... которые реально ДОЛЖНЫ БЫТЬ. их сейчас нет - косяки и прут из этих участков.
119 Злопчинский
 
06.06.12
13:26
а вообще должен быть баланс: или 19 обезьян +1 прогтарелкосуп по 20 тыс = 400тыс или 10 обезьян по 20 тыс +1 программист за 100 и 100 - в профите...
;-)
120 Касандер72
 
06.06.12
13:26
(118) когда что-то расчитываешь, моделируешь рассчитываешь на нормальных юзверей ...
на практике - такое ощущение что основная задача - заставить пргера написать поболее контролек, бьющих по рукам - низя!
121 Касандер72
 
06.06.12
13:30
(117) подробнее плиз - что-то знакомое
122 Mikeware
 
06.06.12
13:32
(120) Это диалектика. Либо вменяемые пользователи, которым не нужно бить по рукам, которые понимают что и как делать. ЛИбо экономия на зарплате мартышек за счет зарплаты вменяемых программистов - и, главное, постановщиков (бизнес-аналлитиков).
123 Касандер72
 
06.06.12
13:35
(122) мечтаю увидеть на предприятии бизнес-аналитика .... или хотя бы систематехника толкового ... сеть в полной ....
124 Злопчинский
 
06.06.12
13:37
(120) вот ты и подобрался к главной мысле наконец. у обезъян не должно быть альтернатив! бери больше - кидай дальше - отдыхай пока летит. ВСЕ. что барть, куда кидать - определяет не обезъяна.
.
поэтому я и гворю - каждая операция - должна быть элементарной (атом). иметь четкое начало-конец и конкретный измеритель этой операции. операция должна выполняться единственным способом. без альтернатив. без инициативы. за одной элементалью - другая элементаль. тупой конвеер. легко модифицируемый, легкозаменяемый исполнителями.
.
упаковка - отдельно. лейбирование - отдельно. отбор лебированных. отдельно. комплектация отдельно после отбора лейбированных. итд.
.
но! все зависит от частногстей и конкретики. Проработка и организация вопроса может быть такая. что упаковка и лейбирование - одна элементаль.
125 Злопчинский
 
06.06.12
13:39
(122) у меян пока вменяемых пользователей удается найти только на конкретные свои участки, да и то с трудом. на связи с другими участками (а без этого никаки) - жпс полный. ни мотивации, ни хотения, ни подвижек. болото. отсутвует вменяемый хороший средний класс. где его взять - ХЗ. растить самим - это определенные вложения и деньги на "воспитателя" тоже нужны.. ;-). Это только ТС за тс работает ;-)
126 Злопчинский
 
06.06.12
13:40
(123) а ты там кто - фикси или приходящий?
127 Злопчинский
 
06.06.12
13:41
дучше тебя техпроцесс во всей его взаимосвязи кто-нит знает? не только на общем идейном уровне, но и включая средний уровени сиполнения 'mnb[ процессов?
128 Касандер72
 
06.06.12
13:51
(125) смотрящий скорее
(127) нет, я непосредственно ошиваюсь, на каждом автоматизируемом участке - изучаю работу, склеиваю схему передачи данных - но до конца - как до Москвы раком
129 Касандер72
 
06.06.12
13:53
+(128) зачастую спец тупо показывает что он делает в проге - приходится код колупать
например просить у товароведа накладную выписать (маленькую) вручную - глухой номер
130 FN
 
06.06.12
14:00
жесть...
а самое печальное что ТС потом в резюме напишет что-то типа "автоматизировал супер-пупер завод, база 60ГБ, персонал 10000 и все с ТСД" - вуаля - готовый спец с зп "отстатыщь"
:(
131 Касандер72
 
06.06.12
14:00
+(129) в общем работа либо разработческого либо изобретательского характера - типа нужно велосипед изобрести, при чем универсальный,или делаю математические наработки, которые потом часто используются.
Черновую работу юнатам обычно даем потренться - потом ползаешь за ними - косяки правишь )))
132 Андрей_Андреич
 
naïve
06.06.12
14:01
(131) У Вас еще и юннаты есть?
133 Зеленый Кот
 
06.06.12
14:01
какая интересная тема
134 Касандер72
 
06.06.12
14:03
(132) угум текучка страшная - больше года - пару чел
135 Касандер72
 
06.06.12
14:03
+(134) юнаты - работающие меньше года - 90% состава
136 Касандер72
 
06.06.12
14:06
(130) до автоматизации далеко - народу захотелось, чтобы штрихкодики "как у всех были" и гемора с ними - вот и побаловались, периодически им скучно становиться - вот и придумывают что-нить лишенное логики - чтобы поиздевываться бывает спецом кривенько и ложим)
137 Злопчинский
 
06.06.12
15:52
открою страшную тайну: универсальное не бывает эффективным. Универсальное - впролне может устраивать. но до эффективности - очень далеко. так что - чем более специализированным будет решение - тем он лучше будет делать требуемое.
138 Касандер72
 
06.06.12
15:56
(137) попробуй енто в глобальник вставить:

глСписокЭлементов = СоздатьОбъект("СписокЗначений");

Функция глОпределитьСписокЭлементов3(перСправочник,перВладелец,перСписокПолей,перПорядок) Экспорт
   
   Фраги = "";
   Если ВвестиСтроку(Фраги,"  УКАЖИТЕ ФРАГМЕНТЫ ДЛЯ ПОИСКА:  ",50,0) < 1 Тогда  Возврат 0;
   ИначеЕсли ПустаяСтрока(Фраги) = 1 Тогда  Возврат 0;
   КонецЕсли;
   
   Фраги = Врег(СокрЛП(Фраги))+",";
   Фраги = СтрЗаменить(Фраги," ",",");
   Фраги = СтрЗаменить(Фраги,Симв(10),",");
   Фраги = СтрЗаменить(Фраги,Симв(13),",");
   Пока Найти(Фраги,",,") > 0 Цикл  Фраги = СтрЗаменить(Фраги,",,",",");  КонецЦикла;
   
   Фраг1 = "";  Запятая = Найти(Фраги,",");  Если Запятая > 0 Тогда  Фраг1 = Лев(Фраги,Запятая-1); Фраги = Сред(Фраги,Запятая+1);  КонецЕсли;
   Фраг2 = "";  Запятая = Найти(Фраги,",");  Если Запятая > 0 Тогда  Фраг2 = Лев(Фраги,Запятая-1); Фраги = Сред(Фраги,Запятая+1);  КонецЕсли;
   Фраг3 = "";  Запятая = Найти(Фраги,",");  Если Запятая > 0 Тогда  Фраг3 = Лев(Фраги,Запятая-1); Фраги = Сред(Фраги,Запятая+1);  КонецЕсли;
   Фраг4 = "";  Запятая = Найти(Фраги,",");  Если Запятая > 0 Тогда  Фраг4 = Лев(Фраги,Запятая-1); Фраги = Сред(Фраги,Запятая+1);  КонецЕсли;
   Фраг5 = "";  Запятая = Найти(Фраги,",");  Если Запятая > 0 Тогда  Фраг5 = Лев(Фраги,Запятая-1); Фраги = Сред(Фраги,Запятая+1);  КонецЕсли;
   
   Поля = перСписокПолей + ",";
   Поле1 = "";  Запятая = Найти(Поля,",");  Если Запятая > 0 Тогда  Поле1 = Лев(Поля,Запятая-1); Поля = Сред(Поля,Запятая+1);  КонецЕсли;
   Поле2 = "";  Запятая = Найти(Поля,",");  Если Запятая > 0 Тогда  Поле2 = Лев(Поля,Запятая-1); Поля = Сред(Поля,Запятая+1);  КонецЕсли;
   Поле3 = "";  Запятая = Найти(Поля,",");  Если Запятая > 0 Тогда  Поле3 = Лев(Поля,Запятая-1); Поля = Сред(Поля,Запятая+1);  КонецЕсли;
   Поле4 = "";  Запятая = Найти(Поля,",");     Если Запятая > 0 Тогда  Поле4 = Лев(Поля,Запятая-1); Поля = Сред(Поля,Запятая+1);  КонецЕсли;
   Поле5 = "";  Запятая = Найти(Поля,",");     Если Запятая > 0 Тогда  Поле5 = Лев(Поля,Запятая-1); Поля = Сред(Поля,Запятая+1);  КонецЕсли;
   
   глЗапрос = СоздатьОбъект("Запрос");
   глТекст = "Обрабатывать Все;
   |Указатель = Справочник."+перСправочник+".ТекущийЭлемент;";
       
   Если ПустоеЗначение(перВладелец) = 0 Тогда
       глТекст = глТекст + РазделительСтрок + "искВладелец = Справочник."+перСправочник+".Владелец; Условие(искВладелец=перВладелец);";
   КонецЕсли;
   
   Если ПустоеЗначение(Поле1) = 0 Тогда  глТекст = глТекст + РазделительСтрок + "Поиска1 = Справочник."+перСправочник+"."+Поле1+";";  КонецЕсли;
   Если ПустоеЗначение(Поле2) = 0 Тогда  глТекст = глТекст + РазделительСтрок + "Поиска2 = Справочник."+перСправочник+"."+Поле2+";";  КонецЕсли;
   Если ПустоеЗначение(Поле3) = 0 Тогда  глТекст = глТекст + РазделительСтрок + "Поиска3 = Справочник."+перСправочник+"."+Поле3+";";  КонецЕсли;
   Если ПустоеЗначение(Поле4) = 0 Тогда  глТекст = глТекст + РазделительСтрок + "Поиска4 = Справочник."+перСправочник+"."+Поле4+";";  КонецЕсли;
   Если ПустоеЗначение(Поле5) = 0 Тогда  глТекст = глТекст + РазделительСтрок + "Поиска5 = Справочник."+перСправочник+"."+Поле5+";";  КонецЕсли;
   
   Если ПустоеЗначение(Фраг1) = 0 Тогда
       глТекст = глТекст + РазделительСтрок + "Условие(";
       Если ПустоеЗначение(Поле1) = 0 Тогда  глТекст = глТекст + "(Найти(Врег(Поиска1),Фраг1)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле2) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска2),Фраг1)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле3) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска3),Фраг1)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле4) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска4),Фраг1)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле5) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска5),Фраг1)>0)";  КонецЕсли;
       глТекст = глТекст + ");";
   КонецЕсли;
   
   Если ПустоеЗначение(Фраг2) = 0 Тогда
       глТекст = глТекст + РазделительСтрок + "Условие(";
       Если ПустоеЗначение(Поле1) = 0 Тогда  глТекст = глТекст + "(Найти(Врег(Поиска1),Фраг2)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле2) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска2),Фраг2)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле3) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска3),Фраг2)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле4) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска4),Фраг2)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле5) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска5),Фраг2)>0)";  КонецЕсли;
       глТекст = глТекст + ");";
   КонецЕсли;
   
   Если ПустоеЗначение(Фраг3) = 0 Тогда
       глТекст = глТекст + РазделительСтрок + "Условие(";
       Если ПустоеЗначение(Поле1) = 0 Тогда  глТекст = глТекст + "(Найти(Врег(Поиска1),Фраг3)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле2) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска2),Фраг3)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле3) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска3),Фраг3)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле4) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска4),Фраг3)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле5) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска5),Фраг3)>0)";  КонецЕсли;
       глТекст = глТекст + ");";
   КонецЕсли;
   
   Если ПустоеЗначение(Фраг4) = 0 Тогда
       глТекст = глТекст + РазделительСтрок + "Условие(";
       Если ПустоеЗначение(Поле1) = 0 Тогда  глТекст = глТекст + "(Найти(Врег(Поиска1),Фраг4)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле2) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска2),Фраг4)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле3) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска3),Фраг4)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле4) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска4),Фраг4)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле5) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска5),Фраг4)>0)";  КонецЕсли;
       глТекст = глТекст + ");";
   КонецЕсли;
   
   Если ПустоеЗначение(Фраг5) = 0 Тогда
       глТекст = глТекст + РазделительСтрок + "Условие(";
       Если ПустоеЗначение(Поле1) = 0 Тогда  глТекст = глТекст + "(Найти(Врег(Поиска1),Фраг5)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле2) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска2),Фраг5)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле3) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска3),Фраг5)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле4) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска4),Фраг5)>0)";  КонецЕсли;
       Если ПустоеЗначение(Поле5) = 0 Тогда  глТекст = глТекст + "или(Найти(Врег(Поиска5),Фраг5)>0)";  КонецЕсли;
       глТекст = глТекст + ");";
   КонецЕсли;
   
   Порядки = перПорядок + ",";
   Порядок1 = "";  Запятая = Найти(Порядки,",");  Если Запятая > 0 Тогда  Порядок1 = Лев(Порядки,Запятая-1); Порядки = Сред(Порядки,Запятая+1);  КонецЕсли;
   Порядок2 = "";  Запятая = Найти(Порядки,",");  Если Запятая > 0 Тогда  Порядок2 = Лев(Порядки,Запятая-1); Порядки = Сред(Порядки,Запятая+1);  КонецЕсли;
   Порядок3 = "";  Запятая = Найти(Порядки,",");  Если Запятая > 0 Тогда  Порядок3 = Лев(Порядки,Запятая-1); Порядки = Сред(Порядки,Запятая+1);  КонецЕсли;
   
   глТекст = глТекст + РазделительСтрок + "Группировка Указатель";
   Если ПустоеЗначение(Порядок1) = 0 Тогда  глТекст = глТекст + " упорядочить по Указатель." + Порядок1;  КонецЕсли;
   Если ПустоеЗначение(Порядок2) = 0 Тогда  глТекст = глТекст + ", Указатель." + Порядок2;  КонецЕсли;
   Если ПустоеЗначение(Порядок3) = 0 Тогда  глТекст = глТекст +", Указатель." + Порядок3;  КонецЕсли;
   глТекст = глТекст + " без групп;";
   
   Если глЗапрос.Выполнить(глТекст) = 1 Тогда
       глСписокЭлементов.УдалитьВсе();
       Пока глЗапрос.Группировка(1) = 1 Цикл
           глСписокЭлементов.ДобавитьЗначение(глЗапрос.Указатель);
       КонецЦикла;
   КонецЕсли;
   Возврат глСписокЭлементов.РазмерСписка();
   
КонецФункции // глОпределитьСписокЭлементов3(перСправочник,перВладелец,перСписокПолей,перПорядок) Экспорт
139 Злопчинский
 
06.06.12
15:58
(138 ) это не велосипед - это штампованная гайка ;-)
да и та - с браком..
Указатель." + Порядок3;
140 Касандер72
 
06.06.12
15:59
затем на форме списка справочника "Контрагенты" сделай кнопку "Найти по фрагментам"
иприкрути к ней процедуру:

Процедура НайтиПоФрагментам()
   
   Если глОпределитьСписокЭлементов("Контрагенты","Наименование,ЮрАдрес") = 0 Тогда
       Предупреждение("Контрагенты с указанными параметрами не обнаружены !",1);
   Иначе
       ИерархическийСписок(0,0);
       УстановитьОтбор(,);
       ИспользоватьСписокЭлементов(глСписокЭлементов);
   КонецЕсли;
   
КонецПроцедуры // НайтиПоФрагментам()
141 Касандер72
 
06.06.12
16:01
(139) попробуй юзануть - разберешься прикручивай к остальным справочникам
142 Mikeware
 
06.06.12
16:03
(137) собственно, конфигурации фирмы 1с - это прямая иллюстрация. Вроде и могут все, но хиленько.
143 Mikeware
 
06.06.12
16:06
(138) это что?
144 Касандер72
 
06.06.12
16:08
(143) универсальная процедура фрагментального поисковика - легко прикручивается к любому справочнику - ищет не только по фрагментам содержащимся в поле, но и по полю реквизита справочника
145 Касандер72
 
06.06.12
16:10
+(144) можно и так передавать параметры:
глОпределитьСписокЭлементов("РассчетныеСчета","Наименование,Банк.Адрес")
самый быстрый вариант, который удалось мне придумать - актуален на больших справочниках
146 Касандер72
 
06.06.12
16:12
(139) в чем брак? подскажи - исправлю
147 Касандер72
 
06.06.12
16:14
ЭТО Я К ТОМУ ЧТО УНИВЕРСАЛЬНЫМ ЛУЧШЕ СДЕЛАТЬ ОТДЕЛЬНЫЙ МЕХАНИЗМ, А КОНФУ В ЦЕЛОМ - ПРОГИБАТЬ ПОД ЦЕЛЬ ИЛИ РЕАЛЬНОСТЬ
148 Mikeware
 
06.06.12
16:15
149 Mikeware
 
06.06.12
16:16
150 Касандер72
 
06.06.12
16:17
(14) не совсем - нашим показалась практичнее: простота - залог успеха - юзани - тогда поймешь
151 Касандер72
 
06.06.12
16:19
(148,149) она ищет содержаться ли указанные фрагменты в указанных полях
152 Mikeware
 
06.06.12
16:24
(151) тут почти то же самое. ТОже поиск по фрагментам. Только прямо при вводе с клавиатуры в поле ввода. Собственно, доделать поиск по нескольким полям - тоже не проблема.
153 Изучаю1С8
 
06.06.12
16:25
(148)(149) Лихо, а на dbf можно замутить такое?
154 Mikeware
 
06.06.12
16:27
(153) Не заморачивался. поэтому сходу не отвечу.
Ну и нет у меня баз файловых.
155 Изучаю1С8
 
06.06.12
16:27
Смахивает кстати на класс Рик Центра
156 Mikeware
 
06.06.12
16:27
(155) он и есть.
157 Изучаю1С8
 
06.06.12
16:28
(156) Напомни а он платный?
158 Mikeware
 
06.06.12
16:29
(157) нет, конечно. Лежит на сайте у них, в свободном доступе.
159 Mikeware
 
06.06.12
16:29
+(158) "все украдено до нас".
160 Изучаю1С8
 
06.06.12
16:30
Хорошо, пойду стырю.. Может на ПрямойЗапрос передалаю.
161 Касандер72
 
06.06.12
16:33
(152) не совсем: своей я могу искать по полю реквизита-ссылки на справочник.
а у тебя 1) линейный по текущему строчному реквизиту
а во 2) слишком наворочено для юзверей-простолюдинов
162 Изучаю1С8
 
06.06.12
16:37
(161) Там не строчный реквизит вообще то, там справочник.
163 Mikeware
 
06.06.12
16:40
(161) я ж тебе говорю, добавить список реквизитов для поиска - не проблема совершенно.
ну и 1. и 2. - это одно и то же. просто во втором случае добавлено выведение остатков
http://s019.radikal.ru/i626/1206/aa/09af90aa4364.jpg
164 Злопчинский
 
06.06.12
16:41
(148) а мне такую можно получить? на дбф будет работать? дайте две!!!
165 Mikeware
 
06.06.12
16:43
(161) "для юзверей-простолюдинов" слишком наворочено вводить с клавиатуры ключевые слова (отрывки слов)? Хаметь, дополнительно нажимать ничего не надо. Хотя можещь нажатием на штатную боковую "педаль" открыть справочник в штатной форме, и лазить там....
166 Касандер72
 
06.06.12
16:43
(163) дело не в этом: твоей мартышку обучать долго) мы предлагали такое - туго впитывают - пришлось упростить)
167 Изучаю1С8
 
06.06.12
16:43
168 Mikeware
 
06.06.12
16:44
(164) за дбф не скажу. А лежит оно на сайте конторы Олега Садовникова, совершенно бесплатно, в открытом доступе...
169 Изучаю1С8
 
06.06.12
16:45
(164) На двф похоже не будет работать надо допиливать.
170 Mikeware
 
06.06.12
16:46
(166) обучать не надо. надо сказать - встань на поле, и нажимай буквы, которые помнишь из названия контры (номенклатуры, договора, ЦФО, статьи затрат... ).
171 Злопчинский
 
06.06.12
16:48
А кому написать денюжек чтобы переточили под ДБФ..?
172 Mikeware
 
06.06.12
16:49
(171) Попробуй Алексею Дирксу напиши. вроде, он был идеологом.
173 Изучаю1С8
 
06.06.12
16:49
(171) А сам чего ) Лучше сразу под класс ПрямойЗапрос переделать тогда и на дбф и на скуле будет одинаково работать.
174 Изучаю1С8
 
06.06.12
16:49
(171) Я кстати если что тоже готов вписаться.
175 Касандер72
 
06.06.12
16:50
(170) это ты спецу можешь объяснить) я людей нулевых сажу на каждый автоматизируемый участок, которые комп издали видели ... все енто есть в 8-ке - но для них это слабо запоминается (ходють потом за тобой как утята за мамкой по каждому поводу)
176 Mikeware
 
06.06.12
16:51
(173) Только медленней будет. ощутимо медленней.
Либо перерабатывать надо слишком радикально.
Хотя могу и ошибаться. Но мне лениво, тем более, ПрямойЗапрос я так до конца не осилил, а сейчас уже как бы не нужно...
177 Изучаю1С8
 
06.06.12
16:53
Олег Садовников сказал что эти классы под dbf тоже работают..
178 Касандер72
 
06.06.12
16:53
(171,173) а базу с дбф на скуль перевести - не судьба?
179 Mikeware
 
06.06.12
16:54
(175) думаешь, у нас тут одни гении работают? Тоже "по объявлениям"
тебе ж Злоп объяснял - если на участке сидит мартышка - у нее не должно быть возможности сделать что-то "по-другому".
180 Mikeware
 
06.06.12
16:55
(178) денег за сервер платить надо. а если у них методика работы позволяет достточно эффективно юзать файловую - "зачем платить больше?"?
181 Злопчинский
 
06.06.12
16:55
(178) легального способа на скуль пересесть сейчас затруднительно. не продают ужо такие бандлы. а куплено в дремучем году было 7.7 net
182 Изучаю1С8
 
06.06.12
16:55
(178) А нафига, меня и dbf устраивает.
183 Касандер72
 
06.06.12
16:55
(179) я енто боссу говорил, ответ: сделай - нехай удавяться - мазохизм у нас не запрещен
184 Злопчинский
 
06.06.12
16:57
(180) да вообщем и без прямых запросов крутится нормально 30 юзверей в пике. нагрузки все равно нет. Прямые запросы в парочке мест всего - исключительно для удобства - псевдожурнал заявок - ублюдочно павда выглядит.. ищу вот кто задешево - за тарелку супа - красиво сделает на ТП... ;-)
185 Mikeware
 
06.06.12
16:58
(184) Юзай не ТП, а ПоставщикДанных. Это уже практически готовый журнал...
186 Злопчинский
 
06.06.12
16:59
эх.. за седня надо терминальную обработку набацать  и взаиморасчеты перекурочить в других разрезах... с ТСД хоть люди другие ходют.. а тут - все сам...
187 Злопчинский
 
06.06.12
16:59
(185) ну так я про это и имею в виду.. но сам - не спец...
188 Злопчинский
 
06.06.12
17:00
даже запрос есть прямой уже готовый.. который сейчас крутится...
189 Касандер72
 
06.06.12
17:00
(184) я пришел три года назад - тоже 30 было, сейчас ....
в общем рано или поздно ... лучше на ДБФ ничего не ставить, если это не локальная прога, имхо
190 Злопчинский
 
06.06.12
17:07
(189) ну на что и как ставить - тут уж я соображу как... до этого 5 лет работало, сейчас уже более 4 лет попричеснао все гораздо лучше, упорядочено, шуршит... все определяется временем восстановления системы после сбоя.. ;-) а так, конечно - была бы возможность - легально на 7.7 скулевую перескочить - переехал бы... эх...
191 Касандер72
 
06.06.12
17:12
(190) ах ну да Россия, лицензии, легальность ... мы Скл-2005 с инета ипнули вместе с сервером - хер не берет)
192 Злопчинский
 
06.06.12
17:13
(191) ты не поверишь - это не Россия, это - бизнес, а  не шарашкина контора как у вас.
193 Злопчинский
 
06.06.12
17:13
;-)
194 Mikeware
 
06.06.12
17:13
(187) да там ничего сложного нет.
http://s008.radikal.ru/i305/1206/94/0f9af0662c9d.jpg сделано за пару часов с перекурами
(184) иэх... всего 30 юзверей. ляпота... а вот у меня проблемы непонятные. писал уже как-то про них...
195 Касандер72
 
06.06.12
17:14
+(190) 8.0 вроде бы и закупали с талмудами, а новое внедряем на 8.2
196 Mikeware
 
06.06.12
17:15
(190)3*тьфу, "время восстановления после сбоя" проверяли только 1 раз. потеряли 4 часа работы людей. Хотя инструкции написаны, лежат в конвертике... лучше бы не понадобились...
197 Mikeware
 
06.06.12
17:16
(195) вам не с 8.2 начинать надо, а с наведения порядка...
198 Касандер72
 
06.06.12
17:18
(197) пробовали - ещё никому ентого не удавалось - а кому на госпредприятии он нужон? )
да 30 юзверей ... да в одном здании ... клево ... эх ...
199 Касандер72
 
06.06.12
17:22
(194) там что отборы на закладки прикручены? зачем тогда прямые запросы?
200 Mikeware
 
06.06.12
17:24
(198) куроводству нужен. Все-таки, несмотря на ващи госпорядки, абсолютные дятлы в руководятлов не пролазят...
201 Злопчинский
 
06.06.12
17:25
(198) мне бы тваои заботы - никто никому ничем не обязан.. в такой конторе одно счастье работать. никакой ответсвенности... ;-)
202 Касандер72
 
06.06.12
17:27
(200) если порядок будеть - как жить тем же начальникам?
мы когда штрихкодирование внедряли - палки в колеса замест помощи летели одна за другой,
а когда просекли что ничего слямзить нельзя - саботаж такой был ... да поздно опомнились)
203 Злопчинский
 
06.06.12
17:28
(194) блин!!!! это же один-в один практически то что мне надо!!!
давай не жлобься - мыль на почту код/обработку, [email protected]
удастся прикрутить относительно быстро - скину денежек!
.
а там можно отрабатывать клики по ячейкам - если жмакнуть например в статус заявки - выполнить код по изменению статуса..?
204 Mikeware
 
06.06.12
17:28
(199) Отборов там значительно больше одного. документов тоже несколько.
Плюс внутри имеющихся отборов можно добавлять свои. Плюс настройка расположения колонок. Плюс драг-н-дроп (правда, вроде в других журналах). Плюс обработка бизнес-процессов. Итоги. Подцветка. короче, дофига чего. Снизу еще два поля, связанных.
205 Касандер72
 
06.06.12
17:28
(201) а ЗП в 300 баксов тебя устроила бы? беззаботный ты наш))) нет денег - нет и забот)
206 Mikeware
 
06.06.12
17:28
(203) "у дураков и мысли сходятся"? :-)
207 Злопчинский
 
06.06.12
17:29
(202) если что-то внедряете - полномочия нужны.. ;-) я на этом ожогов тоже получил.. ;-)
208 Злопчинский
 
06.06.12
17:30
(205) ЗП в 300 баксов устраивает тех, кто готов за такую ЗП работать. на твоем месте за такую ЗП я бы даже  неможечко вредил ;-)
209 Mikeware
 
06.06.12
17:31
(203) бизнес-процессы у меня сделаны по-другому. "Конечный автомат" переходов, завязанный на роли сотрудников.
Жмякаешь по документу, а он показывает действия, доступные только для этого статуса и тем ролям, которые играет данный пользователь...
210 Злопчинский
 
06.06.12
17:31
блин! у меня пенсия почти 500 баксов!!!
211 Mikeware
 
06.06.12
17:32
(210) он в белоруссии, а они там все миллионеры, им баксы нафиг не вперлись...
зы. код от специфики почищу, и скину.
212 Злопчинский
 
06.06.12
17:33
(209) здорово-то как! я об этом только мечтаю... приходится всякой хренью заниматься...
213 Изучаю1С8
 
06.06.12
17:35
(209) Крутяк..
214 Касандер72
 
06.06.12
17:41
(207) какие полномочия? сказали: вот Прядильная фабрика, Техотдел, Диспетчерская, Цеха, Лаборатория, Участки упаковки, Товарные склады - сделай систему штрихкодирования, как на трикотаже - руководи и показывай что делать, если брыкаются - звони - поможем встать на путь истинный ....

(208) дык стараемся: давеча сделали справочник ответственных лиц - и ни один зам. или начальник не может отгрузку разрешить, если копию приказа о разрешении к нам не принесут. Подулись, подулись - смирились ... но как они бедняжки мечутся, когда фуры стоят и срочно отпустить надо)))
215 Касандер72
 
06.06.12
17:43
(210, 211) стопаньки, немного ошибся, 500 баксов по курсу - больше 4,000,0000 а у меня ЗП едва 1,500,000, а на руки - 1,000,000 и то не каждый раз)
216 Касандер72
 
06.06.12
17:44
(209) семерку под 8-ку гонишь?
217 Mikeware
 
06.06.12
17:45
(212) ога. а если про внедрение рассказывать - песТня... два выговорешника за "превышение полномочий, самоуправство". После привыкли, аж жить не могли (там же разные отчетики, типа http://s019.radikal.ru/i641/1206/7b/9a9005bc5403.jpg )
а теперь "ут- камно, патамушта в ней статусов нету..." :-))
вот как примерно это работает:
http://s015.radikal.ru/i331/1206/ac/618734e94a99.jpg
http://s019.radikal.ru/i600/1206/48/9c62f8f9e488.jpg
В принципе, так же отрабатываются и сканирования ШК документов. Ну, и потом вижно полный цикл.
Вот сейчас сижу, ломаю базу Ориона. Точнее, не саму базу, а принцип кодирования кода карточки при сохранениии в базу.
218 Злопчинский
 
06.06.12
17:45
(211) ок!! а то у меня по функционалу - почти устраивает - но выглядит бяково...
ты специфику лучше комментарь!!! я из этой специфики возможно почерпну полезное!!!
219 Mikeware
 
06.06.12
17:46
(218) Ну я ж не могу тебе весь мдшнег выслать :-)))
220 Злопчинский
 
06.06.12
17:46
221 Mikeware
 
06.06.12
17:50
(216) ну, во-первых, статусы - это не из снеговика, а из БЭСТа 1990-х годов. во-вторых, БП у меня появились по крайней мере независимо от снеговика (в 2006), да и настраиваются не кодированием, а параметрически. В третьих, роли - они какбэ "на поверхности" лежат (сделаны тоже давно, года 4 назад), и раздавать их в онлайне проще, чем раздавать права в пофигураторе.
222 Злопчинский
 
06.06.12
17:52
(217) у мну статусы цветом обозначаются - гораздо легче ориентироваться.
динамика - это не так интересно. гораздо интереснее планирование сборки. Я даже тутошнего человечка напряг и он даже вроде полезное сделал - тестовых данных запросил - я так и не выслал - висит теперь вот это тяжким грузом... разгребусь нафиг - доделаю! если чел не "утерял" еще инфу... ай, плохой я человек...
223 Касандер72
 
06.06.12
17:52
(217) Как это за самоуправство? базой же ведущий прогер заправляет ...  ну было, я тоже обложил половину начальников отделов пока внедряли - даже к генеральному вызывали - посмеялись ... главное силой начало вкачать - показать выгоду - они пробуют, привыкают, входят во вкус - и потом хавайся - как за мамкой бегают - хочу это, хочу - мы знаем ты можешь)
224 Злопчинский
 
06.06.12
17:53
(219) а у тебя что - канал узкий, не пролазит..?
225 Злопчинский
 
06.06.12
17:54
(223) опыт проказывает что если ГАЙКИ завернуть СРАЗУ - все устаканивается максимум за 2 недели.
226 Изучаю1С8
 
06.06.12
17:54
(224) =) ты еще базу попраси
227 Mikeware
 
06.06.12
17:55
(223) базой заправляет не прогер - прогер лишь реализует хотелки.  а вот добавлением в базу (точнее, решением, что применять, а что не применять ) - руководитель более высокого уровня.
228 Касандер72
 
06.06.12
17:56
(220) я такую же байду малому в Автопарке сделал (раскраска - управляемая - он сам цвета может назначать - с Формексом - легко
229 Злопчинский
 
06.06.12
17:56
(223) у меня складские жаловались - что это тут У НАС !! НА СКЛАДЕ!! военные порядки вводятся! я сказал - если надо будет - организую утром подъем корпортаивного флага и исполнение гимна фирмы под барабанный бой.
.
В итоге - практически весь старый персонал "выдавлен" нафиг. Остались нормальные работящие ребята. Еще бы им ЗП поднять немножко...
230 Mikeware
 
06.06.12
17:56
(225) или резьбу срывает. Внедряли тут оценку работы склада - пришлось уйти 3 кладовщикам и нескольким комплектовщикам.
231 Злопчинский
 
06.06.12
17:58
(227) тут понимаешь - руководитель более выского уровня - и прогер - зачастую в одном лице ;-) садимся - перетираем с коммерцией - вот это надо бы - надо! а вот такое не хотите ли? О, хотим!
.
в реальности все достатчоно "прсото". сильно замороченных задач нет. есть просто нудные. из-за раздолбайства - вместо того, чтобы делать самим что надо и отдавать клиенту - принимаем от клиента - и все .. жпс.. приходится свой учет под него подстраивать - вот это бесит больше всего...
232 Касандер72
 
06.06.12
18:00
(229) вот енто грамотно)))
(230) странно, вы непрально внедряете) - сколько не внедряли - людей ещё больше нужно было, а не меньше - правда замутить лапшевый рассчет времени пришлось)
233 Злопчинский
 
06.06.12
18:00
(230) про оценку работы склада - надо бы нам с тобой переговорить как -нить "очно". хочу посоветоваться/поучиться - если не пртив конечно. У себя сколько не прикидываю - все врем яполучается что оценка работы склада упирается в жесткую регламентацию и нормативы. а поднять все это один - не потяну... так что пока что "оценка" весьма приблизительная. Но уже лучше чем раньше когда вообще ничего не было.
234 Mikeware
 
06.06.12
18:00
(222) планирование сборки я тоже сделал. Единственное, чего не хватает времени сделать - это просчитать "задачу коммивояжера" на ограниченном множестве точек. А все время почему-то тратится на миздобольство в мизде.
Ну, собственно, как расковыряю шифрование ориона - возьмусь за коммивояжера.
235 Mikeware
 
06.06.12
18:03
(233) у тебя же вроде скайп есть?
236 Злопчинский
 
06.06.12
18:03
(232) не.. на этапе внедрения автоматизации склада - возможно повышение количества персонала. потом - падает. я за счет "ползучей" автоматизации умудлрился сработать без повышения персонала (но растяжка по времени), сейчас у меня те же объемы обслуживают процентов на 40% персонала меньше чем было ранее и с качеством получше.
.
в ближайшее время прикручу еще жосткую приемку и развозку - и будет ваще лепота...
237 Злопчинский
 
06.06.12
18:05
(234) планирование сборки японимаю так: сваливается заявка на склад с we - отгрузка тогда-о - и склад СРАЗУ говорит - не влезет! или влезет, но надо некоторые отгрузки передвинуть например со среды на вторник...
238 Злопчинский
 
06.06.12
18:05
(235) у мну даже наушники с микрофоном есть!!! в тиме кстати тоже можно базарить!!
239 Касандер72
 
06.06.12
18:06
(231) сначала боссы тоже под себя гнули - я скромно предлагал свою версию, но реализовывал ихнюю - надоедал при ентом с распросами что да как - в результате они с косой логистикой в тупняк входили.
Вобщем сдались оне, сейчас тупо обрисовывают задачу в общем, а как я это реализую - это мои проблемы.
Пример: эта ветка - это предложение босса производить расчет итогов после проведения каждой строки,
в общем вы его опустили по-полной - всем ещё раз огромный спс - сказал: делай как знаешь)
240 Злопчинский
 
06.06.12
18:07
т.е. это планирование - такая дышащая система получается.. в т.ч. которая хочется чтобы подсказывала с какого участка можно забрать людей если там ресурса избыток)... итд.. остапа несло...
241 Злопчинский
 
06.06.12
18:09
(239) какое дело босса -после каждой строки или не после каждой стролки? дело босса - нужен вот такой функционал. а как его сделать с требуемым качеством - уже проблемы звена пониже... как-то так я себе представляю...
242 Касандер72
 
06.06.12
18:20
(241) грамотно излагаешь, но я имел ввиду непосредственного босса УИТа - он на бухии 7,7 собаку съел - народа не хватает - приходиться и ему писать - пытаемся УРБД-ную базу разбить - чтобы подчистить, бухитоги он обожает до усеру, а вот регистры недолюбливает.
(236) у меня жесть по приемке есть - осталось только отгрузку и возвраты прописать для товарных складов, оборотку и реализацию .... правда потом на фабрику вернуться и по мере поступления техники все цеха по порядку - убивает только их стремление спихнуть свою работу на других
243 Касандер72
 
06.06.12
18:25
на счет бизнес-процессов: спекульнуть на статусе дока можно, а почему не на подчиненке доков - поставить на контроль отмену прведения - я когда-то реализовывал такой вариант - он без необходимости изврата работает?
244 Касандер72
 
06.06.12
18:28
+(243) а на 8,2 я вообще в регистр сведений перемещение упаковок зарядил - они даже передать с объекта упаковку пряжи не смогут, если она туда не поступила
245 kyrgyz
 
06.06.12
19:15
(242)На счет "собаку съел" я был бы не очень тут распространялся бы.
И даже пусть по бухии. Если он что-то себе представляет он должен точно знать что запросы из базы в цикле это пацанский вариант. Этим грешать те кто начинает и еще пол года не кодили в 1С.
246 Злопчинский
 
06.06.12
19:53
Кстати, на бухкомпоненте строить большой учет - оченнь аккуратненько надо...
247 Mikeware
 
06.06.12
20:04
(243) Не понял. кто на ком стоял?
248 Злопчинский
 
06.06.12
20:39
(243) измена статусов в доке мне не сильно нравится..
249 Андрей_Андреич
 
naïve
07.06.12
04:49
(212) "здорово-то как! я об этом только мечтаю... приходится всякой хренью заниматься..."
И что ты сутками на форуме трындишь и всякой хренью занимаешься, когда оно уже несколько лет как готовое в общем доступе лежит? :)
250 Касандер72
 
07.06.12
08:36
(247) бизнес процесс можно построить на основе ввода на основании, а цепочку контролировать за счет проверок в модуле отены проведения документа: тогда не потребуется реквизит статуса документа.
плюс - без особых извратов, все доки будут иметь другой вид - легко фильтруются, нет необходимости в сохранении всей информации - можно обратиться к документу-основванию.
минус - дублируется некая информация - увеличенный прирост базы
251 Зеленый Кот
 
07.06.12
08:40
все ваши хотелки давно придуманы в SAP ;)
252 Касандер72
 
07.06.12
08:44
(251) а как же прекрасная возможность почувствовать себя изобретателем в 1С-ке ?)
253 Mikeware
 
07.06.12
08:53
(250) на каждый шаг БП плодить подчиненный документ? ты точно не из чуйской долины?
например: заявка имеет статусы - пустой, принята (т.е. подготовлена, больше изменяться не будет), передана на склад, отдана в сборку, собрана, подготовлена к отгрузке, отгружена, отменена, под разукомплектацию, разукомплектована...
аналогичные пути для реализаций, поступлений, перемещений...
254 Андрей_Андреич
 
naïve
07.06.12
09:08
(253) Нет - не из Чуйской. Смене статуса предшествовало какое-то действие (может, толпа кладовщиков 2 дня товар собирала). И это действие надо отразить документом, меняющим статус. Потому что у документа есть дата, время и автор. В системе, когда документ проходит множество рук/этапов, приходится фиксировать все действия. Иначе все будут валить друг на друга и идти с разборками у программисту - "посмотри, почему у этого документа галка снята, хотя я точно помню..."
В системах с большим количеством мозгоjобов больше бумаги - чище апож.
Понятно, что все это не от хорошей жизни.
255 Касандер72
 
07.06.12
09:09
(251) заявка передана на склад - это не чуйская? провели - значит получили, отменили - пометили на удаление, проще простого
достаточно цепочки: заявка - отборка - отгрузка
256 Касандер72
 
07.06.12
09:10
сор (255) для (253) тем более цепочка должна легко расширяться и модернизироваться - иначе гемора не оберешься
257 Касандер72
 
07.06.12
09:16
+(251) что нужно собрать - в заявку, что собрали - в сборку (отборку), а что отгрузили - в накладную.
"отдана в сборку" - создали на основе документ "сборка", завершили - провели этот док
"подготовлена к отгрузке" - создали накладную, отгрузили - провели накладную.
Все проще простого, а то что у тебя - реал чуйский. хотя мазохизм - не запрещен)
258 Касандер72
 
07.06.12
09:18
+(257) и расширять, и модерить (ветвить) такую цепочку значительно легче
259 Касандер72
 
07.06.12
09:21
(253) кроме того у меня при производстве пряжи партии смешиваются-перемешиваются - твоя линейная система тупенько ляжет
260 Андрей_Андреич
 
naïve
07.06.12
09:24
(259) Сильно-то не увлекайся критиканством. Мой код проверил или некогда работать?
261 Касандер72
 
07.06.12
09:26
а бизнес процесс по одной заявке отслеживать легко если кроме реквизита "ДокументОснование" ввести во все доки цепочки реквизит "НачалоОсновнания" - куда и лепить начальную заявку (вершину пирамидки).
Тогда неважно, сколько веток в бизнес процессе - документы цепочки легко собираются по этому признаку
262 Касандер72
 
07.06.12
09:28
(260) я не увлекаюсь критиканством, просто предложил альтернативный тоже проверенный вариант, который более мобилен, эффективен на не линейных (разветвленных) бизнес-процесах.
Про чуйскую ты сам начал поминать, не разобравшись)
263 Mikeware
 
07.06.12
09:29
(257) у меня бизнес-процессы настраиваются в рабочем режиме. Работают - в соответсвии с ролями пользователей. добавить новую ветвь процесса - дело 1 минуты. Отслеживаются состояния - в онлайне, кладовщиками, начальниками склада и т.п. Строятся отчеты типа (217). И, главное, видно, кто , где, когда сменил статус.
264 Андрей_Андреич
 
naïve
07.06.12
09:31
(263) Где изменения регистрируешь?
265 Касандер72
 
07.06.12
09:31
(263) тоже клево, а как насчет: "простота - залог успеха" ?)
сколько потребуется времени на подготовку сопроводителя твоей схемы?
266 Mikeware
 
07.06.12
09:36
(265) что значит - "соповодителя схемы"?
человек, который может нарисовать бизнес-процесс на бумажке - способен создать его и в программе. Описание и инструкция занимают 1 печатный лист.
267 Касандер72
 
07.06.12
09:36
(263) ещё для размышления: ты корректируешь исходный документ - промежуточный вид (для анализа) теряется - отслеживание усложняется - хорошо ли енто? особенно на этапе внедрения ...
а права доступа у отдельных доков - расставить не проблема.
268 Mikeware
 
07.06.12
09:36
(264) Какие именно изменения?
269 Касандер72
 
07.06.12
09:37
(266) я имел ввиду программиста, который сможет эффективно модерить (в коде) твою схему
270 Касандер72
 
07.06.12
09:40
(266) инструкция - 1 лист ... утопия ... мы для своих мартышек книги создаем в картинках, где как оленю на скринах выделяется куда пальчиком тырнуть ... повезло тебе с исполнителями)
271 Mikeware
 
07.06.12
09:43
(267) у меня ничего не теряется. "история документов" - чуть не самая большая таблица в базе.
"права доступа расставить не проблема" - а если права пересекаются? а если пользователи уходят в отпуск? если сегодня кто-то "замещает"?
если решили "попробовать сегодня сделать вот так"?
(269) для сопровождения готового механизма программист не нужен. Механизм создан в 2007, и использовался практически без доработок 4 года. Добавлено с начала года одно дополнительное "предопределенное действие" - тупым копипастом 6 строк. можно было прописать его во всех шагах БП, но это сотня лищних действий.
272 Mikeware
 
07.06.12
09:44
(270) это инструкция для пользователя уровня начальника отдела-зам.директора.
Там оленей не держат
273 Андрей_Андреич
 
naïve
07.06.12
09:47
(271) Понял. Непростая в реализации альтернатива. Засим ветку покидаю, ибо автор уже забыл за чем пришел и ветка превратилась в разговор обо всем в узком кругу.
Работать надо (это я себе).
274 Mikeware
 
07.06.12
09:49
(273) ты не поверишь Очень простая. Общий объем подсистемы - порядка 300 строк и 2 справочника.  (отчеты не считаю)
275 Касандер72
 
07.06.12
09:50
(271) группы прав "товаровед", "сборщик", "кладовщик" и "насяльника" тебя спасут - пересечение допускается - здесь нет проблемы, создать сводную группу "универсал" для цепочки - тоже не проблема - и кстати на практике - самая эффективная, а отследить кто что с доком делал по журналу легко.
Насчет нет необходимости в модерации: не поверишь - каждая система со временем теряет эффективность (короче износ как у основных средств), да и бывает, что гром грянет.
(273) то, что я спрашивал - уже давно работает - тестируется)))
276 Касандер72
 
07.06.12
09:54
(273) сглазил паразит работу таки - токи что сервак трикотажки упал (
277 Mikeware
 
07.06.12
10:56
(275) сколько у тебя будет "сводных груп" для 3 ролей? 4. а для 4- 11? а для 5? :-) а для 12? :-)))
"остледить по журналу" - не особая проблема. С ПоставщикДанныхЖурналРегистрации - точно. только ве равно дольше и менее удобно. А вот получить сведения, сколько у тебя заявок собиралось на 8, 9, 10 11 часов - уже тяжелее....
впрочем, каждому - свое...
278 Попытка1С
 
09.06.12
20:59
(171) Сегодня на dbf внедрил у себя в базу классы для обеспечение функционала который показан в (148), все работает и на файловой подтверждаю. Так что дерзай)
279 Злопчинский
 
10.06.12
02:33
(278) учел, спсб!
280 Злопчинский
 
10.06.12
02:35
(249) >.. когда оно уже несколько лет как готовое в общем доступе лежит?
- ссылку дайте!
281 Злопчинский
 
10.06.12
02:44
Система вводан ан основании и выстраивание цепочек документов - явно придумана под легкими расслабляющими нарокотиками и весьма нежизненна в опр.случаях.
например: заявка покупателя - терки-корректировки-цены-длинная цепочка ОДНОТИПНЫХ ДОКУМЕНТОВ, в то время когда сточки зрения манагера - это одна ЗАЯВКА, хочется: чтобы при изменении данных заявки никаких новых доков не вводилось/не множилось... а регилось "унутре", типа удалили строку в заявке - она "осторнировалась" относительно предыдущего состояния заявки. Посмотреть историю заявки - разворачивается из "унутре". ну и самое главное - при "отмене проведения" - вся история развития заявки остается... как-то так...
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.