|
v7: Дайте совет. ТиС (ЗаявкаПоставщику и ПоступлениеТМЦ) - ДатаПоставки | ☑ | ||
---|---|---|---|---|
0
FREEEEs
28.10.11
✎
15:00
|
Всем привет друзья и удачного уикенда!
Быть может кто то захочет помочь..... Сразу говорю букв не мало. Суть такова, есть конфа Торговля и Склад. Есть документ ЗаказПоставщику, у него есть дата - ДатаОтгрузки. Когда заходим в справочник- Номенклатура, внизу есть таблица которая выводит остати номенклатуры на складах - ОбработкаПоказатьОстаткиТМЦ и вот, там какой-то программист добавил в таблицу колонку "Дата поставки". То есть когда в форме-списка, в справочнике Номенклатура выделяем запись, внизу выводится таблица остатков и там колонка ДатаПоставки. ДатаПоставки ставится когда мы создаём и проводим документ ЗаказПоставщику с этой номенклатурой. Суть в том что программист написал криво, когда мы проводим ЗаказПоставщику, ДатаПоставки ставится, но когда мы проводим ПоступлениеТМЦ ОНА НЕ УБИРАЕТСЯ, продавцы заходят в Номенклатуру и видят что ДатаПоставки висит всё время, хотя товар уже пришёл. Вопросы: 1) Как работает документ ЗаказПоставщику и документ ПоступлениеТМЦ ? Понятно что по регистр, код смотрел, но всё же не пойму до конца. При проведении ПоступлениеТМЦ он списывает ЗаказПоставщику ? 2) Как решить проблему? То-есть надо смотреть в сторону при проведении ПоступлениеТМЦ ? Но реквизит ДатаПоставки берётся из Документа ЗаказПоставщику. То-есть менять сам реквизит нельзя. P.S Я не знаю правильно ли написал / переда мысли.... пишите - отвечу. |
|||
1
Iris-ocean
28.10.11
✎
15:22
|
глупая доработка
|
|||
2
Iris-ocean
28.10.11
✎
15:27
|
тут конечно можно при проведении поступления очищать дату, но доработка кривая изначально была. Так как тут не учитываются случаи, когда отменяют проведение заказа или поступления
|
|||
3
FREEEEs
28.10.11
✎
15:53
|
Ну так дата же у документа ЗаказПоставщику, там очищаем реквизит ДатаОтгрузки?
|
|||
4
FREEEEs
28.10.11
✎
15:54
|
А какую роль вообще играет ПоступлениеТМЦ ?? Онхоть влияет как то на ЗаказаПоставщику??
|
|||
5
Iris-ocean
28.10.11
✎
15:57
|
мне не видно что там за дата в справочнике номенклатуры - из заказа она или сама по себе. Скорее всего сама по себе. просто в момент проведения заказа в номенклатуре проставляется дата.
|
|||
6
Iris-ocean
28.10.11
✎
16:00
|
(4) ну как, заказ делает движение по регистру "заказы" приход....а поступление, введенное на основании заказа, делает соответсвенно движение расход. Вот и всё. в 7.7. всё примитивно
|
|||
7
aka AMIGO
28.10.11
✎
16:02
|
мне кажется, надо в форму списка номенклатуры добавить код определения факта поставки номенклатуры.
анализ регистра Заказы или ЗаказыЗаявки, связать дату с остатками, сформировать значение в колонке |
|||
8
aka AMIGO
28.10.11
✎
16:08
|
(4) так можно посмотреть движения - это раз..
а два - если ПоступлениеТМЦ сделано на основании Заказа, то элементарно находится док-основание, и в нем обнуляется дата.. я-бы так сделал.. только, конечно, надо согласовать сценарий с заказчиком. |
|||
9
FREEEEs
29.10.11
✎
11:18
|
Подскажи как Подскажи как связать дату с остатками?
Я вот подумал. Как вариант? Хотя хз ЗаказПоставщику - это приход, идёт движение в регистре оприходе N кол. товара. ПоступлениеТМЦ - это расход, идёт движение в регистре о расходе N кол. товара. То есть грубо говоря получается 2 таблицы приход и расход и нужно как то переработать их и та запись прихода у которой нет записи расхода - это будет Заявка которая ещё не пришла. Помогите :< |
|||
10
aka AMIGO
29.10.11
✎
11:41
|
попробуй воспользоваться вот такой штукой, что сделал я на форме списка в журнале "Счета", это мой самодельный журнал, но сути не меняет..
в ТЧ журнала есть колонка "Задолженность, в ней функция ДоплатаПоЗаказу(), содержимое её определяется инфой из подчиненных Счету документов: Функция ДоплатаПоЗаказу() Перем Док, пДок; Если ТекущийДокумент.Вид()= "ЗаявкаПокупателя" Тогда //ЗаявкаПокупателя - это Счет Тмп=ТекущийДокумент.Итог("Сумма"); ДокРасходБ=""; пДок = СоздатьОбъект("Документ"); Док = СоздатьОбъект("Документ"); Док.ВыбратьПодчиненныеДокументы(,, ТекущийДокумент); Пока Док.ПолучитьДокумент()=1 Цикл Если Док.Проведен()=0 Тогда Продолжить; КонецЕсли; Если Док.Вид()="ОтменаСчетов" Тогда Тмп=Тмп-ТекущийДокумент.Итог("Сумма"); Продолжить; КонецЕсли; Если Док.Вид() = "СтрокаВыпискиПриход" Тогда Тмп = Тмп - Док.Сумма; ДокРасходБ = Док.ТекущийДокумент(); ИначеЕсли Док.Вид() = "СтрокаВыпискиРасход" Тогда Тмп = Тмп + Док.Сумма; ИначеЕсли Док.Вид() = "ПКО" Тогда Тмп = Тмп - Док.Сумма; ИначеЕсли Док.Вид() = "РКО" Тогда Тмп = Тмп + Док.Сумма; КонецЕсли; КонецЦикла; Возврат ?(Тмп=0,"",Формат(Тмп,"Ч15.2")); Иначе Возврат ""; КонецЕсли; КонецФункции ЗЫ. это как вариант извлечения и формирования инфы по подчиненным. счас приведу второй пример - инфа по остаткам, но у меня в них формируется не колонка, а пиктограмма в ТЧ журнала.. |
|||
11
zak555
29.10.11
✎
11:50
|
(10) это что такое ?
|
|||
12
aka AMIGO
29.10.11
✎
11:52
|
второй пример: у меня автоматом резервируется товар при поступлении ТМЦ, и состояние Счета (Заявки покупателя) зависит от остатков Заказов и Резервов по счету визуально отображается в Журнале.
Функция Картина() Перем Док, пДок; Если ТекущийДокумент.Вид()= "ЗаявкаПокупателя" Тогда Если ТекущийДокумент.Проведен()=0 Тогда Возврат 0; КонецЕсли; СЗп = СоздатьОбъект("СписокЗначений"); пДок = СоздатьОбъект("Документ"); Док = СоздатьОбъект("Документ"); СуммаОплаты = 0; ЕстьРеализация=0; Док.ВыбратьПодчиненныеДокументы(,,ТекущийДокумент); Пока Док.ПолучитьДокумент()=1 Цикл Если Док.Проведен()=0 Тогда Продолжить; КонецЕсли; Если Док.Вид() = "ОтменаСчетов" Тогда Возврат 5; //Серый Отмена КонецЕсли; Если Док.Вид() = "СтрокаВыпискиПриход" Тогда СуммаОплаты = СуммаОплаты + Док.Сумма; КонецЕсли; Если Док.Вид() = "ПКО" Тогда СуммаОплаты = СуммаОплаты + Док.Сумма; КонецЕсли; Если Найти(Док.Вид(), "Реализация")>0 Тогда ЕстьРеализация= ЕстьРеализация + Док.Итог("Количество"); КонецЕсли; КонецЦикла; ОстЗаявки = РегЗаявки.СводныйОстаток(,,,ТекущийДокумент,"КоличествоРасход"); ОстРезервы = РегРезервы.СводныйОстаток(,,,,ТекущийДокумент,"Количество"); Если ЕстьРеализация = ТекущийДокумент.Итог("Количество") Тогда Возврат 3; //зеленый реализовано КонецЕсли; Если СуммаОплаты <>0 Тогда Если ОстЗаявки = ОстРезервы Тогда //укомплектован Возврат 2; //желтый Иначе //некомплект Возврат 6; //фиолетовый КонецЕсли; КонецЕсли; //не оплачен Если СуммаОплаты=0 Тогда Возврат 1; //красный КонецЕсли; Возврат 4; //Синий ошибка КонецЕсли; Возврат 0; КонецФункции РегЗаявки = СоздатьОбъект("Регистр.Заявки"); РегРезервы = СоздатьОбъект("Регистр.РезервыТМЦ"); ЗЫ. счас приведу картинку - отображение состояния Счетов в журнале ЗЫЫ. сообщения насчет того Г. это код или неГ. - от уважаемых форумчан не принимаются, спасибо, опнаслышан, мне важно, что у заказчика ЭТО работает, остальное - лесом, лесом.. :) |
|||
13
aka AMIGO
29.10.11
✎
11:53
|
(11) - знаешь ТиС в 7.7? вот это её доработка
|
|||
14
FREEEEs
29.10.11
✎
11:54
|
Можно конечно по тупому, в месте где он в таблицу добавляет дату поступления, проверять если дата Заказа меньше текущей, то логично что заказ уже пришёл, оставляем поле пустым.
Но тут недочёт, а вдруг приход будет раньше (ПоступлениеТМЦ сделают раньше) чем была ранее ДатаОтгрузки в Заявке, но наша дата всё равно будет висеть в таблице. |
|||
15
zak555
29.10.11
✎
11:58
|
(13) зачем такой код, если в тисе есть регистры :?
|
|||
16
aka AMIGO
29.10.11
✎
11:59
|
журнал счетов:
http://s017.radikal.ru/i415/1110/dc/71156c519a3b.jpg (14) друже, фантазия тебе в руки, рисуй код, по-ходу придет решение, мож по-первости плохое, улучшишь.. делов-то.. всё привычное.. ЗЫ. в создании программ отладка занимает 80% времени.. и только 20% - написание с размышлизмами :) |
|||
17
FREEEEs
29.10.11
✎
12:01
|
aka AMIGO Спасибо =)
|
|||
18
aka AMIGO
29.10.11
✎
12:07
|
(15) и слава Богу, что есть :)
вот я анализирую их остатки, это для меня инфа о состоянии :) решение да-ле-ко-не-единственное, и не самое хорошее.. сколько прогеров - столько и вариантов.. столько и мнений о моем коде.. ничо.. я привычный :) (17) не за что.. если черпнешь что полезное - буду рад.. ЗЫ. вот еще такой анализ счетов есть у меня: заказчик очень доволен.. значит, и я тоже :) http://s017.radikal.ru/i410/1110/99/955b753ec8b6.jpg к сожалению, примерчик отчета не очень полный.. обычно выводятся все связанные документы, с оплатой, с поставками, с инфой о заявках.. не в этом дело.. |
|||
19
aka AMIGO
29.10.11
✎
12:08
|
+18 забыл сказать: это вариант счета, помеченный Желтым, т.е. готов к реализации
|
|||
20
aka AMIGO
29.10.11
✎
12:11
|
а вот этот - частично укомплектован
http://s017.radikal.ru/i432/1110/38/385466830e0d.jpg |
|||
21
FREEEEs
29.10.11
✎
12:14
|
Эххх что о у меня куча мала в голове ((
Не знаю с чего начать. Вот думаю, капать в сторону вывода списка - Справочник - Номенклатура - Обработка.ПоказатьОстаткиТМЦ Или копать в сторону ПоступлениеТМЦ и при его проведении, обрабатывать ЗаявкаПотавщику |
|||
22
aka AMIGO
29.10.11
✎
12:20
|
(21) я тебя понимаю.. примерно так-же я себя чувствую, когда мне отвечают :)
за каждым ответом - код, или решение, потребовавшее времени у отвечающего на разработку.. мне трудно советовать, конфа-то чужая.. так и в моей другому будет трудно разобраться.. |
|||
23
aka AMIGO
29.10.11
✎
12:27
|
Может быть поможет такой код, это справочник номенклатура, ФормаСписка, две новых колонки: Свободный остаток и Резерв
а вот код их расчета: Функция ПолучитьСвободныйОстаток() Перем тмп; ТекНоменклатура = ТекущийЭлемент(); Если ТекНоменклатура.ЭтоГруппа()=1 Тогда Возврат ""; КонецЕсли; тмп = Регистр.ОстаткиТМЦ.СводныйОстаток(,ТекНоменклатура,,,"Количество")- Регистр.РезервыТМЦ.СводныйОстаток(,ТекНоменклатура,,,,"Количество"); Если ПустоеЗначение(тмп)=1 Тогда Возврат ""; КонецЕсли; Возврат СокрЛП(Формат(тмп,"Ч014.3")); КонецФункции Функция ПолучитьТовРезерв() Перем тмп; ТекНоменклатура = ТекущийЭлемент(); Если ТекНоменклатура.ЭтоГруппа()=1 Тогда Возврат ""; КонецЕсли; тмп = Регистр.РезервыТМЦ.СводныйОстаток(,ТекНоменклатура,,,,"Количество"); Если ПустоеЗначение(тмп)=1 Тогда Возврат ""; КонецЕсли; Возврат СокрЛП(Формат(тмп,"Ч014.3")); КонецФункции |
|||
24
aka AMIGO
29.10.11
✎
12:33
|
+23 вот так выглядит форма списка с этими колонками:
http://s017.radikal.ru/i402/1110/ff/8e0c99d391f4.jpg |
|||
25
FREEEEs
29.10.11
✎
12:40
|
Спасибо конечно тебе, хватит тратить время на меня =)
|
|||
26
FREEEEs
29.10.11
✎
12:41
|
Эммм.. тебе же не 71 год как в анкете ? оО
|
|||
27
aka AMIGO
29.10.11
✎
12:41
|
(26) конечно, мне уже 72 :)
|
|||
28
FREEEEs
29.10.11
✎
13:41
|
Тогда на Вы ?
|
|||
29
aka AMIGO
29.10.11
✎
18:02
|
(28) ни в коем разе! это инет, а не великосветский прием :)
тут все равны, как перед Ним! :) |
|||
30
Злопчинский
30.10.11
✎
04:43
|
(6) > ну как, заказ делает движение по регистру "заказы" приход....а поступление, введенное на основании заказа, делает соответсвенно движение расход. Вот и всё. в 7.7. всё примитивно
- ответ нвеерный по двум пунктам - по основному и по "все примитивно", незчет |
|||
31
Злопчинский
30.10.11
✎
04:45
|
Пришел товар или нет по обязательствам.выраженным в заказах поставщикам, определяется соответсвующим отчетом. Если в отчете нет заказа №23 - значит товар по нем упришел.. ;-)
а точнее - в отчете показываются заказы. по котрым НЕ ЗАКРЫТЫ обязательства по поставкм.. ибо если показывать закрытые заказы - то придется выводить все с самого начала времен чт о было закрыто.. ;_) |
|||
32
Злопчинский
30.10.11
✎
04:47
|
(8) > если ПоступлениеТМЦ сделано на основании Заказа, то элементарно находится док-основание, и в нем обнуляется дата..
- так делать нельзя, ибо проведение по регистрам заказов/заказов заявок опирается на ожидаемую дату поставки как раз.. и при перепроведении (восстановлении ГП и прочих) - поличите бяку - ... в штатных алгоритмах - дато ожидаемой поставки не должна быть пустой. |
|||
33
Злопчинский
30.10.11
✎
04:53
|
так и не понял, какую ЗАДАЧУ надо решить ТС..? "убрать какую-то дату написанную вопреки все йметоде типовой ТиС" - это не задача. это сиюминутный костыл, который непонятен вне подробного текста объяснения полного смысла его сипользования....
. в типовой ТиС наличие остатков требуемых (резервов заявок, выполнения заказов и прчоего) - делается не на основании флажков, взводимых непонятно кем и когда - а на основании данных получаемых ВТОТ ММОМЕНТ КОГДА ОНИ НУЖНЫ - из регистров. . это не всегда удобно и эффективно. Но допиливать, не зная т иповых возможностей - езще больший грех... |
|||
34
FREEEEs
30.10.11
✎
05:33
|
Злопчинский критиковать мы все умеем, много ума не надо.
Что значит не понятна задача? Я думал меня тут все поняли, ок, я не ленивый человек, напишу ещё раз. Есть документ ЗаказаПоставщику у него есть реквизит ДатаОтгрузки. Есть Справочник Номенклатура, есть форма списка, при выборе элемента, внизу обрабатывается табличная часть. Обработки.ПоказатьОстаткиТМЦ. Программист до меня (их было около 5 чел. и каждый вносил изменения), добавил в эту обработку, новую колонку "ДатаПоставки", эта колонка берёт дату из Регистра Заказы, измерение ЗаказПоставщику = Документ.ЗаказаПоставщику = ДатаОтгрузки. -- То-есть дату видно как только пошло движение по регистру приход (провли документ ЗаказПоставщику с текущим товаром (который выбрали)). Но дата не убирается вообще. Даже когда бы проводим ПоступлениеТМЦ, дата всё-равно висит в таблице. Хотя товар уже приняли. Вопрос: Как убрать эту дату после прихода товара. Понятно? |
|||
35
FREEEEs
30.10.11
✎
05:34
|
Я согласен что после ПоступлениеТМЦ смотреть ДокОснования и меня его дату не вариант... тем более не факт что у ПоступлениеТМЦ будет ДокОснования.
|
|||
36
FREEEEs
30.10.11
✎
05:37
|
Именно по этому, я думаю единственный вариант делать на стороне вывода таблицы и отсеивать.
То-есть в обработке ПоказатьОстаткиТМЦ. Как-то проверять заявки котороые уже пришли и не пришли. |
|||
37
Bww_
30.10.11
✎
08:19
|
С ТиС прочно не работал, но может-поможет...
В УПП, как бы схожая идеология: - Есть внутренний количественный заказ (без цен); - Заказ поставщику (с ценами) + ссылка на вн.заказ; - Поступление товаров и услуг + ссылка на заказ поставщику и вн.заказ. Закрывает заказ поставщику И! вн.заказ при условии, что источником вн.заказа является склад; - Требование-накладная + ссылка на вн.заказ. Закрывает вн.заказ, при условии, что его источником является подразделение. |
|||
38
Мимохожий Однако
30.10.11
✎
09:27
|
(34)Закрытие регистра Заказы происходит? Каким документом? Бери дату не только из него, а еще из регистра Партии поступления и сравнивай даты. Оставляй большую. ИМХО, проще убрать это дерьмо, чем править.
|
|||
39
FREEEEs
30.10.11
✎
09:28
|
Ну пока сделал так.
Уж точно лучше чем не как. Приход = 0; Расход = 0; Пока ЗаказыТМЦ.ПолучитьДвижение() = 1 Цикл ....... Если ТекущийДок.Вид() = "ЗаказПоставщику" Тогда Приход = Приход + ЗаказыТМЦ.КоличествоПриход; Иначе Расход = Расход + ЗаказыТМЦ.КоличествоПриход; КонецЕсли; КонецЦикла; НеВсе = ?(Приход > Расход, 1, 0); Если (ТаблОстатков.Поставка < ТекущаяДата()) ИЛИ (НеВсе = 0) Тогда ТаблОстатков.ДатаПоставки = ""; КонецЕсли; |
|||
40
FREEEEs
30.10.11
✎
09:30
|
То-есть проверил что если дата поставки меньше текущей, само собой уже на кутально и если заказов не больше чем поступлений.
Что вообще значит "Закрытие регистра Заказы происходит? " ?? Я знаю только движения прихода и расхода, о закрытии не знаю. |
|||
41
Мимохожий Однако
30.10.11
✎
09:31
|
Если регистр не оборотный, то он обязан закрываться согласно правил.
|
|||
42
FREEEEs
30.10.11
✎
09:33
|
Регистр Заказы - Остатки.
Есть док. ЗаказыПосавщику - приход, есть док ПоступлениеТМЦ - расход. Как мне понять что значит "закрыватся" ? Где глянуть? |
|||
43
Мимохожий Однако
30.10.11
✎
09:34
|
Отчет Заказы поставщикам, что показывает по проблемным позициям?
|
|||
44
FREEEEs
30.10.11
✎
09:35
|
Ну вот грубо говоря кусок из модуля документа ПоступлениеТМЦ, где тут закрытие?
Процедура ПроведениеПоРегистрам() Перем ВремРегистры; Перем ВремПоставщики, ВремЗаказы, ВремЗаказыЗаявки; // Удаление движений по регистрам. Для Номер = 1 По Метаданные.Регистр() Цикл ОчиститьДвижения("Регистр."+Метаданные.Регистр(Номер).Идентификатор); КонецЦикла; ТаблицаДокумента=глПодготовитьТаблицуДокумента(Контекст); СписокПараметров=СоздатьОбъект("СписокЗначений"); СписокПараметров.ДобавитьЗначение(ТекущийДокумент(),"ТекДок"); СписокПараметров.ДобавитьЗначение(Склад, "Склад"); СписокПараметров.ДобавитьЗначение(Цвет, "Цвет");//RW СписокПараметров.ДобавитьЗначение(Фирма, "Фирма"); СписокПараметров.ДобавитьЗначение(Контрагент, "Контрагент"); СписокПараметров.ДобавитьЗначение(Договор, "Договор"); СписокПараметров.ДобавитьЗначение(КодОперации, "КодОперации"); ВремРегистры = СоздатьОбъект("Регистры"); ВремЗаказы = ВремРегистры.Заказы; ВремЗаказыЗаявки = ВремРегистры.ЗаказыЗаявки; ФильтрЗаказов(ТаблицаДокумента, ВремЗаказы, ВремЗаказыЗаявки); Если КодОперации=Перечисление.КодыОпераций.Закупка Тогда ВремПоставщики = ВремРегистры.Поставщики; глФильтрДолгов(Контекст, Договор, СписокПараметров, ВремПоставщики); КонецЕсли; Если ИтогиАктуальны() = 0 Тогда ВремРегистры.Актуальность(1); ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент()); КонецЕсли; // Принимать на реализацию будет только товары Если КодОперации=Перечисление.КодыОпераций.ПриемНаРеализацию Тогда ТаблицаДокумента.ВыбратьСтроки(); Пока ТаблицаДокумента.ПолучитьСтроку()=1 Цикл ТаблицаДокумента.ВидТМЦ = Перечисление.ВидыТМЦ.Товар; КонецЦикла; КонецЕсли; ДвижениеЗаказов(ТаблицаДокумента, ВремЗаказы, ВремЗаказыЗаявки); глПриходОстатковТМЦ (Контекст,ТаблицаДокумента,СписокПараметров); глОприходованиеПартийТМЦ(Контекст,ТаблицаДокумента,СписокПараметров); Если КодОперации=Перечисление.КодыОпераций.Закупка Тогда ТаблицаДокумента.Свернуть("ВидТМЦ,СтавкаНДС","Сумма,СуммаУпр,СуммаРуб,СуммаНДС,СуммаНП"); ТаблицаДокумента.НоваяКолонка("ВидДолга"); ТаблицаДокумента.НоваяКолонка("КредДокумент"); ТаблицаДокумента.ВыбратьСтроки(); Пока ТаблицаДокумента.ПолучитьСтроку()=1 Цикл ТаблицаДокумента.ВидДолга = ВидДолгаПоТМЦ(ТаблицаДокумента.ВидТМЦ); ТаблицаДокумента.КредДокумент = ТекущийДокумент(); КонецЦикла; СписокПараметров.Установить("ЗнакДвижения", -1); // уменьшение долга контрагента глДвижениеДолгов(Контекст, Договор, ТаблицаДокумента,СписокПараметров,ВремПоставщики); КонецЕсли; КонецПроцедуры // ПроведениеПоРегистрам() |
|||
45
Мимохожий Однако
30.10.11
✎
09:35
|
Как разруливаешь ситуацию - несколько заказов поставщикам по одной позиции?
|
|||
46
Мимохожий Однако
30.10.11
✎
09:36
|
(44)я не про код. Просто открой отчет и сформируй.
|
|||
47
FREEEEs
30.10.11
✎
09:37
|
Отчёт вообще не понятный)) сделал за 2 дня отчёт, 2 документа было Заказа с 4 номенклатурами, отчёт на 100 страниц))
|
|||
48
FREEEEs
30.10.11
✎
09:40
|
Ну отчёт показывает Заказано и Получино, одинаковые данные
|
|||
49
Мимохожий Однако
30.10.11
✎
09:40
|
Возьми одну позицию для начала и период поменьше.
|
|||
50
FREEEEs
30.10.11
✎
09:42
|
Ну так что полезного в этом отчёте?
Он показывает движения по регистру Колличества. Или это и есть "закрытие" ? |
|||
51
FREEEEs
30.10.11
✎
09:42
|
*Он показывает движения по регистру, Колличества,Сумма.
|
|||
52
aka AMIGO
30.10.11
✎
09:43
|
(42) "закрытие" ..
разные документы делают движения регистра (остатков), и по выбранной совокупности измерений регистра, равны ресурсы по приходу и расходу. это и есть закрытие - равенство нулю итогов по измерениям. спец. действия "закрытие регистра" нет |
|||
53
Мимохожий Однако
30.10.11
✎
09:43
|
Я это к тому, что в данной организации не обращают внимания на документ-основание при поступлении. (50) Это и есть осутствие закрытия. Ответь на (45)
|
|||
54
FREEEEs
30.10.11
✎
09:45
|
И чем же это закрытие отличается от:
Приход = 0; Расход = 0; Пока ЗаказыТМЦ.ПолучитьДвижение() = 1 Цикл ....... Если ТекущийДок.Вид() = "ЗаказПоставщику" Тогда Приход = Приход + ЗаказыТМЦ.КоличествоПриход; Иначе Расход = Расход + ЗаказыТМЦ.КоличествоПриход; КонецЕсли; КонецЦикла; НеВсе = ?(Приход > Расход, 1, 0); Это аналог закрытия? МимохожийОднако ммм... это был вопрос по теме? Несколько заказав и как я уберу датупоставки? |
|||
55
Мимохожий Однако
30.10.11
✎
09:47
|
Может и не по теме. Тебе решать. Однако.. при наличии нескольких заказов на одну и ту же позицию и с разными датами поставки. Что будешь выводить в форму списка?
|
|||
56
FREEEEs
30.10.11
✎
09:48
|
Вот сейчас пробую. Потавил дату на компе 27 и щас сделаю 2 заказа, 5 минут
|
|||
57
FREEEEs
30.10.11
✎
09:51
|
Ну во первых, так было сделано до меня.
При создании двух заказов. 1) ЗаказПоставщику - 100 ед - 27.10.11 2) ЗаказПоставщику - 100 ед - 28.10.11 В таблице отображается дата 28.10.11 ! Хотя само собой должно быть 27, как я понял он просто тупо берёт последнее движение. |
|||
58
FREEEEs
30.10.11
✎
09:53
|
Он получается обращается к последнему движению Регистра Заявки - Документу ЗаказПоставщику - к реквизиту ДатаОтгрузки
|
|||
59
Мимохожий Однако
30.10.11
✎
09:57
|
Вот оно и всплыло. Уточни у клиента, что он хочет. Может быть, удалить недостоверную информацию.Иногда не показывать правильнее и достаточно научиться пользоваться "неправильным" отчетов Заказы поставщикам.
|
|||
60
FREEEEs
30.10.11
✎
09:57
|
Эхх..
Можно сделть так. Получить список движений товара прихода Заявки. Получить список движений товара расхода ПоступлениеТМЦ. Выгрузить в таблицы, по циклу искать пары по номенклатуре, кол... Но тут много теледвижений, лишнии циклы |
|||
61
FREEEEs
30.10.11
✎
10:01
|
А как лучше из списка Дат выбрать одну меньшую ?
|
|||
62
Мимохожий Однако
30.10.11
✎
10:04
|
А я бы начал с допроса пользователей. Кто и что хочет видеть. Потом ткнуть носом в отчет. Для случая (60) для начала надо вводить Поступление на основании Заказа поставщика. Но это не спасет. Дело в изначальной постановке задачи. В данной ситуации можно добавить в справочник Номенклатуры периодический реквизит Заказано и хранить дату планируемой поставки при проведении документа Заказ поставщику. При выводе списка бежать от Текущей даты до ближайшей в реквизите. И не надо регистры дергать :-)
|
|||
63
aka AMIGO
30.10.11
✎
10:10
|
(61) Дата= Мин(Дата, ОчереднаяДата);
++ если хочешь - выложи модуль Списка Номенклатуры в какой-нибудь файлообменник.. ifolder.ru, что-ли.. хочется посмотреть, что у тебя там |
|||
64
FREEEEs
30.10.11
✎
10:16
|
Эммм модуль списка номенклатуры, или Обработки.ПоказатьОстаткиТМЦ <= Колонка ДатаПоступления ?
Модуль номенклатуры как бы не участвует в данной теме =) |
|||
65
aka AMIGO
30.10.11
✎
10:28
|
(64) понятно.. тогда обработку, сохрани как внешний отчет :)
|
|||
66
FREEEEs
30.10.11
✎
10:36
|
||||
67
aka AMIGO
30.10.11
✎
10:45
|
(66) ладушки, я понял.. только придется отложить до вечера, буду занят..
|
|||
68
FREEEEs
30.10.11
✎
12:11
|
Ну вот всё =)
Думаю идеальный вариант, может кому пригодится: .... ЗаказыТМЦ = СоздатьОбъект("Регистр.Заказы"); ЗаказыТМЦ.УстановитьЗначениеФильтра("Номенклатура", ОбъектАнализа, 1); .... ДатаТА = ПолучитьДатуТА(); ДатаЗапроса = ТекущаяДата(); Если ДатаЗапроса > ДатаТА Тогда ДатаЗапроса = ДатаТА; КонецЕсли; ГлубинаЗапроса = ДобавитьМесяц(ДатаЗапроса,-2); ЗаказыТМЦ.ВыбратьДвижения(ГлубинаЗапроса,ДатаЗапроса); ... ТаблИтоги = СоздатьОбъект("ТаблицаЗначений"); ЗаказыТМЦ.ВыгрузитьИтоги(ТаблИтоги, 1, 1); ТаблИтоги.ВыбратьСтроки(); НоваяДатаПоставки = ""; Пока ТаблИтоги.ПолучитьСтроку() = 1 Цикл ДатаЗаказа = ТаблИтоги.ЗаказПоставщику.ДатаОтгрузки; Если ДатаЗаказа < ДатаЗапроса Тогда Продолжить; ИначеЕсли ДатаЗаказа = ДатаЗапроса Тогда НоваяДатаПоставки = ДатаЗапроса; Продолжить; ИначеЕсли ПустоеЗначение(НоваяДатаПоставки) = 1 Тогда НоваяДатаПоставки = ДатаЗаказа; Иначе НоваяДатаПоставки = Мин(ДатаЗаказа, НоваяДатаПоставки); КонецЕсли; КонецЦикла; |
|||
69
FREEEEs
30.10.11
✎
12:16
|
Лан распишу пошагово:
Создали ссылку на регистр. Установили фильтр по отдельному товару (который мы выбрали в табл. части). Получили актуальную дату, текущую. Получили глубину запроса на два месяца назад. Выбрали движения. Выгрузили Итоги - те заявки, которые до сих пор висят не выполненные. По циклу обходим эти заявки. Если дата Заявки старая, лесом. Если нашли док с текущей датой, выходим мы сделали своё дело. Если дата Заявки не старая и не текущая, начинаем сравнивать со всеми такими датами и находим наименьшую. Ну и всё, дальше выводим НоваяДатаПоставки. |
|||
70
Мимохожий Однако
30.10.11
✎
12:19
|
Код придумал. Молодец. Однако дай поподробнее ответ на вопрос: Как эту информацию используют пользователи при подборе товара?
|
|||
71
FREEEEs
30.10.11
✎
12:27
|
Ну она(заказчица) сказала так.
Продавец на терминале заходит в Справочник Номенклатура, там список товаров и под списком товаров, внизу находится табличная часть Обработки.ПоказатьОстаткиТМЦ. Вот и всё и если нет товара, продавец видит когда придёт товар (ДатПоступления), или его ещё не заказали. По крайне мере, этот заказчик привык работать так, и учить их использовать отчёт "Заказы поставщикам" нет смысла. |
|||
72
aka AMIGO
30.10.11
✎
12:28
|
(69) и я поздравляю! когда въедешь в проблему - всё просто! :)
|
|||
73
FREEEEs
30.10.11
✎
12:30
|
aka AMIGO
Просто люди бывают разные, да согласен кода не много, но как по мне идеально. Кто-то стремится к простате (сделал за 5 минут и отдал как попало), кто-то стремится к идеалу (чтоб работало отлично, предусмотреть все возможные проблемы вперёд). В любом случаи спасибо за ответы, помощь и т.д. Тема получилась обширная, надеюсь кому-то помимо меня она пригодится! |
|||
74
Мимохожий Однако
30.10.11
✎
12:33
|
Если программиста не остановить, то он будет улучшать до бесконечности. Например, для твоего случая можно добавить количество, которое заказано на эту дату. :-) Если есть еще заказы в будущем будет меньше путаницы. Можно добавить расшифровку в виде отчета "Заказы поставщиков№ по кнопочке "Расшифровать". Вдруг клиенту надо больше, чем заказано в ближайшей поставке.
|
|||
75
FREEEEs
30.10.11
✎
12:35
|
Нееее, я решал конкретную задачу, ошибку, проблему. Что дата висела вечно, не убиралась, не обновлялась. Трабла решена. Выходные потратил на это, но опыт дороже =)
|
|||
76
FREEEEs
30.10.11
✎
12:37
|
Только я привык по договорам работать, а тут почасовая, вообще фиг знает сколько потом ставить к оплате....
(это конечно не единственная задача) |
|||
77
Мимохожий Однако
30.10.11
✎
12:40
|
Если работаешь по договорам, то забрось им возможность расширения функционала по этой фишке. Например, видеть в окошке не только дату, а список пар (дата, количество) будущих поставок. Клиента можно крутить не только по конкретной задаче, а по следующим. Главное, чтобы у него денег хватило.
|
|||
78
FREEEEs
30.10.11
✎
14:37
|
Просто... мне очень тяжело говорить с ними про деньги.... типа они спрашивают, а за сколько то и сё? И всё начинаю думать.. вставать в ступор.
Как ты например рассчитываешь? |
|||
79
Злопчинский
30.10.11
✎
17:18
|
(34) я понимаю что пи..ть - не мешки ворочать, а подумать - времени нет.
в (34) так и не написано какую задачу надо решить, а написана полная хня - то что было сделано раньше, что криво и прочая ХНЯ. - это видно потому, что как сказано - 5 человек... . и что ДЕЙСТВИТЕЛЬНО НУЖНО человеку - остается только телепатировать... . предложить могу кучу вариантов... . из того что я понял - заказывается товар у поставщика - в это время в карточку товара прописывается ожидаемая ДАтаПоступления.. (каковы остатки товара на данный момент - хз). есои предположить что одновременно на товар может быть несколько заказов поставщику - что там будет написано и что НАДО - так и непонятно... . если исходить из самого простого вариант - ЕСЛИ ЕСТЬ ТЕКУЩИЙ ОСТАТОК ТМЦ - то просто НЕ ПОКАЗЫВАТЬ дату ожидаемого поступления. . а так, без описания ЧТО ХОТЕЛИ РЕШИТЬ (внедряя такую хню) - разговор бесполезен, до (34) топика ТС - "невменяем"... будет шестым... будет делать очередную хню.. |
|||
80
Злопчинский
30.10.11
✎
17:33
|
(54) правда вот здесь
ДвижениеЗаказов() . (71) ну слава богу, к третьей рюмке окле мались.. на форму Остатков ТМЦ положи дополниельную маленькую ТЗ. юзверь двигаясб по форме номенклатуры - внизу на форме остатков видит текущие остатки ТМЦ и рядом простой перечень ожидаемых поставок по этой номенклатуре с ожидаемым количеством... . заодно meltn видно - если висят заказы поставщику с просроченными датами поступления ( меньше текущейДаты ) - то в учете бардак и кони... . конечно же, если делать по уму (а автор возможно и не допетрит), то по грамотному в таблице ожидаемых поставок следует отдельно выделить товар, который будет зарезервирован под уже существующие заявки покупателей (регистр.ЗаказыЗаявки) - но возможно по таколй схеме у автора не работают... . и не надо никаких доп.сущностей типа ожидаемых дат поставок в карточке номенклатуры, ввода на оснвоании и прочей Не относящейся к делу схем, которые напридумывали неграмотные "внедренцы"... или не ннаучили не рассказали что и как и как использовать для каких целей. . также, если по уму (а автор стопудово не допетрит) - то рядом с табличкой ожидаемых поступлений (на форме остатков) - положить кнопочку, которая вкл/выкл "показ" таких данных - дабы беготня по справочнику (при наборе например по первым буквам) не притормаживала тогда когда н е надо.. . работы - на 30-40 минут, чтобы сделать красиво и удобно для юзверей.. ну и плюс часа два чтобы нахрен убрать всю фигню которую там наколупали навводили... . Короче, привет от критика поп дивам нашей 1Сной эстрады... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |