![]() |
![]() |
![]() |
|
v7: ТиС Счет-фактура. Распределение по ГТД. | ☑ | ||
---|---|---|---|---|
0
vpall
15.11.06
✎
17:15
|
Попытался сделать в счете-фактуре выданном, чтобы одинаковые позиции с разными гтд расписывались подробно вместо "в т.ч." + по ним считались все цены и налоги. Вроде получилось...А как теперь убрать строчку, в которой такие товары объединяются?
|
|||
1
ТелепатБот
гуру
15.11.06
✎
17:15
|
||||
2
vpall
15.11.06
✎
18:39
|
?
|
|||
3
у лю 427
15.11.06
✎
20:01
|
а если вставите док задним числом - распределение ГТД гавкнется...
Что будете делать? |
|||
4
Maniac
модератор
15.11.06
✎
20:04
|
(3) а для этого (по импортному товару) нужно в ТИС в колоке "Партия" строго заполнять конкретные партии хоть задним хоть настоящим. И сбоев не будет по партионному и проблема решена.
|
|||
5
у лю 427
15.11.06
✎
20:12
|
(4) ню-ню... Это практически руками не реально, когда товаров пару тысяч наименований и маленькие партии с разным ГТД...
Ручной подбор здесь не катит при объеме свыше 50-70 наименований... P.S. у меня работает автопилот... нетиповой... |
|||
6
Maniac
модератор
15.11.06
✎
20:15
|
(5) а кто мешает сделать автораспределение ? два пальца об асфальт. Я вот написал на днях при вводе на основании счет расходной накладной автоматически распределяются партии по строкам (причем если в одной строке количество на несколько партия строки авторазбиваются). При этом идет анализ остатков также если док задним числом вводится (тоесть расчет на дату документа но с учетом остатков партий на текущий момент).
|
|||
7
Maniac
модератор
15.11.06
✎
20:16
|
Также кнопочка в доке есть. Плюс эту же фигню можно перед записью (ни в коем случае не во время записи и не в момент проведения) впиндюрить.
|
|||
8
Maniac
модератор
15.11.06
✎
20:20
|
И вообще для партионному учета хоть импортный хоть нет всегда партии нужно заполнять. Это и задним проблемы все решает, и проведение результаты не искажает и минусов копейки. да и оптимизирует проведение. Просто нужно нормально механизмы доделать да и делов то. За шесть использования ни разу не испытывал проблем с партионным.
|
|||
9
у лю 427
15.11.06
✎
20:25
|
Если документ на ТА - то все будет нормально...
А вот если вводят задним числом - будет ЖПО... P.S. не зря же меня здесь долбают насчет партионного учета и заднего числа... |
|||
10
Maniac
модератор
15.11.06
✎
20:26
|
(9) да даже задним нормально. ты же сам знаешь а долбають могут тока те кто никуа не шарит и не видит очевидных вещей.
|
|||
11
у лю 427
15.11.06
✎
20:27
|
Заполнение партий вручную - ну очень мудрое решение...
в стиле 1С.... типа ипитесь, тетеньки, сами, я немощен... |
|||
12
Maniac
модератор
15.11.06
✎
20:29
|
(11) согласен. но тока это вечное. и восьмерка ничем не отличается. Таже байда. Но а мы на что. Я вот как раз такие моменты очень люблю искоренять, за года прожитые с 1С это в крови заложилось.
|
|||
13
у лю 427
15.11.06
✎
20:30
|
у меня есть решение... автопилотное...
|
|||
14
Maniac
модератор
15.11.06
✎
20:30
|
Ну партии очень просто заполнять если сделать обработку еще на стадии выбора из номенклатуры. Выбираем товар - бах и автоподобралась партия.
Ну или кнопку повешать которая заполнит потом по всей накладной. |
|||
15
Maniac
модератор
15.11.06
✎
20:31
|
(13) верю что есть, у меня тоже это все даным давно реализовано.
|
|||
16
Maniac
модератор
15.11.06
✎
20:33
|
ВОт обработка по заполнению партий по всему документу (если док был набит без партий). Эта же процедура автоматически срабатывает при вводе на основании. А так вообще еще на стадии подбора товара партия выбирается. Механизмы простые и работают как швейцарские часы. Вот например код. В нем же есть участок который при работе задним числом проверяет из расчетных партий были ли они списаны уже на текущий момент.
Процедура ПоКнопкеЗаполнитьПартииФИФО(Автоматически = 0) Если Проведен() = 1 Тогда Предупреждение("Функция работает только для новых документов.",2); Возврат; КонецЕсли; Если Автоматически = 0 Тогда сз_ТипЗаполнения = СоздатьОбъект("СписокЗначений"); сз_ТипЗаполнения.Установить("Вручную",1); сз_ТипЗаполнения.Установить("Автоматически",2); _ТипЗаполнения = 1; Если сз_ТипЗаполнения.ВыбратьЗначение(_ТипЗаполнения,,,,1) = 0 Тогда СтатусВозврата(0); Возврат; КонецЕсли; Иначе _ТипЗаполнения = 2; КонецЕсли; Если _ТипЗаполнения = 1 Тогда // Выбор партий вручную Если Вопрос("Будет произведен подбор партий для позиций номенклатуры","Да+Нет") <> "Да" Тогда Возврат; КонецЕсли; ТекРедДок = ВзятьКонтекст(Контекст); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл АктивизироватьСтроку(НомерСтроки); ВыборПартии(ТекРедДок); КонецЦикла; ТекРедДок = ""; Иначе // Подбор партий автоматически СуммаНач = Итог("Сумма"); //запоминаем для сравнения ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений"); СписокТоваров = СоздатьОбъект("СписокЗначений"); Если КоличествоСтрок() > 0 Тогда ВыгрузитьТабличнуюЧасть(ТаблицаДокумента); //ТаблицаДокумента.Свернуть("Номенклатура,ЕдиницаИзмерения,СкладОтгрузки,Продавец,СтавкаНДС,ПроцентСкидки,Коэффициент,Цена","Количество,Сумма,СуммаСНДС,СуммаСкидки"); ТаблицаДокумента.Свернуть("Номенклатура,ЕдиницаИзмерения,СкладОтгрузки,СтавкаНДС,ПроцентСкидки,Коэффициент,Цена,КредДокумент,Продавец","Количество,Сумма,СуммаСНДС,СуммаСкидки,СуммаДолгаВзаим"); ТаблицаДокумента.Выгрузить(СписокТоваров,,,"Номенклатура"); КонецЕсли; ВремРегистры = СоздатьОбъект("Регистры"); ВремПартииНаличие = ВремРегистры.ПартииНаличие; ВремПартииНаличие.УстановитьЗначениеФильтра("Номенклатура",СписокТоваров,2); ВремПартииНаличие.УстановитьЗначениеФильтра("Склад",Склад); Если СравнитьТА() = -1 Тогда Состояние("Расчет/контроль итогов регистров...."); ВремПартииНаличие.ВременныйРасчет(); ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент()); КонецЕсли; Состояние("Заполнение таблицы..."); УдалитьСтроки(); // хранение партий по которым исчерпано кол-во сз_ИсчерпанныеПартии = СоздатьОбъект("СписокЗначений"); ТаблицаИтогов = СоздатьОбъект("ТаблицаЗначений"); ТаблицаДокумента.ВыбратьСтроки(); Пока ТаблицаДокумента.ПолучитьСтроку() = 1 Цикл ВремПартииНаличие.УстановитьЗначениеФильтра("Номенклатура",ТаблицаДокумента.Номенклатура); ВремПартииНаличие.ВыгрузитьИтоги(ТаблицаИтогов,1,1); КоличествоТовара = ТаблицаДокумента.Количество; ТаблицаИтогов.ВыбратьСтроки(); Пока (ТаблицаИтогов.ПолучитьСтроку() = 1) И (КоличествоТовара > 0) Цикл // пропускаем исчерпанную партию _ПартияТовар = Строка(ТаблицаИтогов.Партия)+Строка(ТаблицаДокумента.Номенклатура); Если сз_ИсчерпанныеПартии.Получить(_ПартияТовар) = 1 Тогда Продолжить; КонецЕсли; КоличествоОстаток = ТаблицаИтогов.Количество; Если КоличествоОстаток = 0 Тогда сз_ИсчерпанныеПартии.Установить(_ПартияТовар,1); Продолжить; КонецЕсли; //ОстатокРезерва = Регистр.РезервыТоваров.СводныйОстаток(ТаблицаИтогов.Номенклатура,,,,,,"Количество"); //Осталось = ТаблицаИтогов.Количество - ОстатокРезерва; //Если Осталось <= 0 Тогда // Продолжить; //КонецЕсли; Если ДатаДок < ТекущаяДата() Тогда ТекущийОстаток = Регистр.ПартииНаличие.СводныйОстаток(ТаблицаИтогов.Номенклатура,Склад,,,ТаблицаИтогов.Партия,,"Количество"); Если ТекущийОстаток <= 0 Тогда Продолжить; КонецЕсли; КоличествоОстаток = Мин(ТекущийОстаток,КоличествоОстаток); // // ну а дальше заполнение. КонецЕсли; |
|||
17
Maniac
модератор
15.11.06
✎
20:38
|
pit признайся, это ведь тот таинственный партионный о котором уже наслышаны все но никто никогда не видел ? Кстати приложенные алгоритмы далеко не все доганяют ну и бох с ними. пусть ипуца дальше.
|
|||
18
vpall
15.11.06
✎
20:40
|
ОГО!!!
Maniac, похоже вы монстр в кодинге! (в хорошем смысле этого слова :)) Не могли бы вы немного пояснить...этот вариант подходит под мою проблемку (к сож. не очен хорошо разбираюсь в 1с)? |
|||
19
у лю 427
15.11.06
✎
20:42
|
Если СравнитьТА() = -1 Тогда ....
вот здесь неслабая собака порылась... долго... Контроль не обеспечивает проверки на уход в красноту и восстановление... |
|||
20
у лю 427
15.11.06
✎
20:44
|
Приложенные алгоритмы не обеспечивают 2-х вещей
контроль за краснотой и самое главное - нет быстроты работы... Медленных алгоритмов много... А основное требование - в быстроте работы и отсутствии тормозов.. |
|||
21
у лю 427
15.11.06
✎
20:48
|
приведенный алгоритм - это то, с чего я начинал и отказался сразу после анализа его работы...
|
|||
22
Maniac
модератор
15.11.06
✎
20:48
|
(20) в моей специфике торговли этот алгоритм обеспечивает контроль. Согласись тут многое от специфики зависит конкретного предприятия.
Насчет быстроты аналогичная ситуация. данные алгоритмы практически действуют мгновенно. Да расчет будет по любому если задним числом, но он компенсируется тем что партии минусом не идут, плюс оптимизация алгоритма, ведь когда партия выбрана и проведение идет гораздо быстрей. Плюс теже самые моменты что не ползут фин результаты и то что ситуация актуальна. |
|||
23
Maniac
модератор
15.11.06
✎
20:51
|
Модуль по заполнению партий работает так мгновенно что и глаз не успевает моргнуть. А при выборе партии еще на стадии подбора номенклатуры работает даже если задним мгновенно, так как фильтрация идет по множеству измерений - номенклатура, склад, фирма. При условии расчета на каждой строке (если док задним числом) даже расчет работает мгновенно.
|
|||
24
Maniac
модератор
15.11.06
✎
20:53
|
(18) читай (4) если у тебя еще на стадии расходной определены партии (а именно в них ГТД и страна происхождения) то в СФ у тебя будет все как по швейцарским часикам.
|
|||
25
vpall
15.11.06
✎
20:57
|
Maniac, благодарю!!!
Сейчас буду колдовать... Товар большей частью импортный. ГТДшек нет только на единицы. Вот только партии товара по-моему не всегда заполнялись :( |
|||
26
Maniac
модератор
15.11.06
✎
20:58
|
При выбранной партии в доке:
1) мы закрепляем за документом конкретные финансовые результаты. 2) закрепляем приложенные к партиям характеристики (гтд, страну). Тоесть есть гарантия того что при перепроведении партии не съедут, а вместе с ними не собьются гтд. Также это помогает при ведении учета по дополнительным характеристикам (например серийный номера или другие качества партий (например по партяим легко реализуется учет по цветам или еще какой нить любой куйне)) 3) оптимизируется проведение документов - когда выбрана партия в модуле проведения выборка итогов регистра партий (для определения себестоимости) работает на порядок быстрей, т.к мы получем итоги во временной таблице не просто по товару но и в разрезе конкретной партии. |
|||
27
Maniac
модератор
15.11.06
✎
20:59
|
(25) да ты рано радуешся. если бы все было так просто )) это целая методика. Если не въехать до конца то результат не гарантирован.
|
|||
28
у лю 427
15.11.06
✎
21:06
|
Данный алгоритм, конечно, можно использовать, но только при очень сильных ограничениях...
Если одну и ту же группу товаров выписывают более одного манагера - то принцип распределение по партиям в форме дока и проведение без расчета ничего не даст... Все равно надо в модуле проверить - а вдруг кто то уже хапнул кусок распределенных партий. Повторный же расчет - это тормоза... Так что от чего ушли - к тому пришли... |
|||
29
у лю 427
15.11.06
✎
21:07
|
Когда каждый товар отпускает только один манагер - указанный принцип рабочий...
|
|||
30
vpall
15.11.06
✎
21:07
|
Maniac,
Ну это само собой разумеется! Вообще изначально задача стояла такая (цитирую): в счете-фактуре выданном(только для печати) 1. В итого считать сумму стоимости товаров без налога (5 колонка) 2. Расписать товары с ГТД ( цену, сумму, сумму с ндс и т.д.) |
|||
31
у лю 427
15.11.06
✎
21:10
|
(30) ГТД и учет заводских серий, сроков годности и т.д. - задача одного плана...
|
|||
32
Maniac
15.11.06
✎
21:44
|
(25) а вот тут контроль поставить просто нужно. Не проводить доки без заполненных партий. Кстати все это в твою концу реализоватся может с любого момента. То что наработали без партий уже не исправить.Но с определенной даты можно начать именно так.
|
|||
33
Maniac
15.11.06
✎
21:45
|
(28) вот у нас торговый центр 6000 кв метров напичканный мебелью. За семь лет работу как то ниразу не встречалось чтобы за одним диваном стояла очередь хотя бы из трех человек.
|
|||
34
Maniac
15.11.06
✎
21:48
|
(29) Он рабочий в большинстве ситуаций. Давайте возьмем супермаркет с 20 кассами. Какова вероятность того что в одно глновения на всех 20 кассах хотя бы в пяти через штрихкод будет идти товар "Балитка 7". Я боюсь что в супермаркетах партия вообще накуй не нужна. просто привел пример чтобы оченить вероятность. По поводу конкретной вероятности написано (33) с учетом порялка 20 человек из всей массы которые занимаются регулярным списанием.
|
|||
35
Maniac
15.11.06
✎
21:50
|
Даже это можно решить легко. Некоей глобальной для всех пользователей таблицей в которую в реалтайме будут записываться товары с партиями (например в один момент 5 юзеров делают расходные накладные). Думаю такой алгоритм написать ну очень просто, и он никак не повлияет на работоспособность. Просто хорошо продуманно реализовать.
|
|||
36
Maniac
15.11.06
✎
21:51
|
Решил вынести обсуждение в отдельную статью
http://infostart.ru/articles/index.php?id=133&ref=1709 |
|||
37
у лю 427
15.11.06
✎
22:02
|
В (35) - бред...
мдя... мебель - товар практически уникальный и очереди за каждым диваном точно нет... У меня другая ситуация - 3 оператора выписывают импортный товар, на остатке 6 партий товара с названием БАРАХЛО НОМЕР РАЗ... в каждой по 10 штук В количестве 15 штук его хотят купить все 3 покупателя... Оператор1 выполнил распределение по партиям, но не успел запустить на проведение - покупатель подсчитал бабки и сказал - давай добавим еще немного товара БАРАХЛО НОМЕР ДВА... пока оператор1 добавляет - операторы 2 и 3 тоже выполнили распределение и провелись.... Если в модуле дока нет проверки распределения - то док оператора1 тоже проведется, товара в целом хватит... Но ошибку - товар из первой партии (с ГТД) спишется 2 раза и партия улетит в минуса... При наличии контроля (с тормозами) оператор1 отвалится с непроведенным доком с сообщением типа "выполни распределение повторно"... Выполняет - проводит - облом - теперь кака то сволочь хапнула другой товар из-под носа... И начинается... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |