![]() |
![]() |
![]() |
|
Документ не проведен, а движения по регистру есть | ☑ | ||
---|---|---|---|---|
0
Klesk
14.08.07
✎
12:06
|
Программно проводил заявку покупателя: Провести(1), не сдвинулась точка актуальности почему то, но документ провелся, отменил проведение, документ не проводится, пишет недостаточно свободного количества, так как зарезервирован товар, причем этим же непроведенным документом... Как так может быть?
|
|||
1
ТелепатБот
гуру
14.08.07
✎
12:06
|
||||
2
Стрелок
14.08.07
✎
12:07
|
кривой
|
|||
3
Стрелок
14.08.07
✎
12:07
|
кривой код
|
|||
4
Skom
14.08.07
✎
12:08
|
в документе не стоит галка автоматически удалять движения документа
это в метаданных |
|||
5
Klesk
14.08.07
✎
12:11
|
(3) согласен, хочу поправить
(4) в заявке это сделано еще 1с, наверно это не зря Наверно вот этого где то не хватает?: // Удаление движений по регистрам. Для Номер = 1 По Метаданные.Регистр() Цикл ОчиститьДвижения("Регистр."+Метаданные.Регистр(Номер).Идентификатор); КонецЦикла; А как программно проводить документ в разделенном режиме двигая точку актуальности? |
|||
6
у лю 427
14.08.07
✎
12:11
|
хм.... хорошая в (2) самокритика....
P.S. это фича такая в 8-ке, уже 4 года удаляют. Чтобы программисты не спали и трах.лись... |
|||
7
Klesk
14.08.07
✎
12:12
|
(6) у меня 7,7
|
|||
8
dk
14.08.07
✎
12:17
|
(4,5) бред
|
|||
9
Стрелок
14.08.07
✎
12:18
|
(6) а при чём тут 8-ка?
(4) а при чём тут "не удалять движения" у непроведённого документа? |
|||
10
перцептрон
14.08.07
✎
12:29
|
(0)(4) изврат. Получаеться что движения удаляються ПриОтменеПроведенияДокумента()?
|
|||
11
Klesk
14.08.07
✎
12:38
|
(10) этот изврат придуман фирмой 1с, а вот зачем...
|
|||
12
Klesk
14.08.07
✎
12:39
|
(10) нет, этой процедуры нет в модуле
|
|||
13
Стрелок
14.08.07
✎
12:40
|
(12)
ответь на вопросы 1. документ проведён или не 2. выложи код который выдаёт что товар уже зарезервирован заказом |
|||
14
Klesk
14.08.07
✎
12:50
|
Документ не проведен, в остатках показывает что зарезервировано количество этим документом.
Вот кусок функции: Функция СоздатьРезерв(КолРезерва,ТекНоменклатура,ТекСклад,ВремРезервыТМЦ,ВремОстаткиТМЦ) ОстатокНаСкладе = 0; РезервНаСкладе = 0; // проверим, а есть ли у нас вообще-то свободный остаток? Если ПустоеЗначение(ТекСклад) = 0 Тогда Если ПустоеЗначение(ФирмаДляОстатковТМЦ) = 1 Тогда // Фильтр по фирме не нужен ОстатокНаСкладе = ВремОстаткиТМЦ.СводныйОстаток(,ТекНоменклатура,ТекСклад,, "Количество"); РезервНаСкладе = ВремРезервыТМЦ.СводныйОстаток(,ТекНоменклатура,ТекСклад,,,"Количество"); ИначеЕсли ТипЗначенияСтр(ФирмаДляОстатковТМЦ) = "СписокЗначений" Тогда // Нужны сводные остатки по нескольким фирмам СчетчикЦикла = 0; Для СчетчикЦикла = 1 По ФирмаДляОстатковТМЦ.РазмерСписка() Цикл ТекФирма = ФирмаДляОстатковТМЦ.ПолучитьЗначение(СчетчикЦикла); ОстатокНаСкладе = ОстатокНаСкладе + ВремОстаткиТМЦ.СводныйОстаток(ТекФирма,ТекНоменклатура,ТекСклад,, "Количество"); РезервНаСкладе = РезервНаСкладе + ВремРезервыТМЦ.СводныйОстаток(ТекФирма,ТекНоменклатура,ТекСклад,,,"Количество"); КонецЦикла; ИначеЕсли ТипЗначенияСтр(ФирмаДляОстатковТМЦ) = "Справочник" Тогда // нужны сводные остатки только по одной фирме ОстатокНаСкладе = ВремОстаткиТМЦ.СводныйОстаток(ФирмаДляОстатковТМЦ,ТекНоменклатура,ТекСклад,, "Количество"); РезервНаСкладе = ВремРезервыТМЦ.СводныйОстаток(ФирмаДляОстатковТМЦ,ТекНоменклатура,ТекСклад,,,"Количество"); КонецЕсли; МожноСделатьРезервНаСкладе = Макс(0,Мин(КолРезерва,(ОстатокНаСкладе - РезервНаСкладе))); // проверка резерва на складе Если (МожноСделатьРезервНаСкладе < КолРезерва) и (ВидОперации = Перечисление.ВидыОперацийЗаявок.НаСклад) Тогда //Смотри за кем зарезервировано Если РезервНаСкладе>0 Тогда ТаблЗн=СоздатьОбъект("ТаблицаЗначений"); Если ПустоеЗначение(ФирмаДляОстатковТМЦ)=1 Тогда ВремРезервыТМЦ.УстановитьФильтр(ФирмаДляОстатковТМЦ,ТекНоменклатура,ТекСклад); Иначе ВремРезервыТМЦ.УстановитьФильтр(,ТекНоменклатура,ТекСклад); КонецЕсли; ВремРезервыТМЦ.ВыгрузитьИтоги(ТаблЗн,1,1); ТаблЗн.ВыбратьСтроки(); КемЗарезервировано=РазделительСтрок+" ("; Пока ТаблЗн.ПолучитьСтроку()=1 Цикл КемЗарезервировано=КемЗарезервировано+ТаблЗн.Количество+" "+ТекНоменклатура.БазоваяЕдиница+" - "+глПредставлениеДокумента(ТаблЗн.ЗаявкаПокупателя)+" ("+ТаблЗн.ЗаявкаПокупателя.Автор+")"+" ; "; КонецЦикла; КемЗарезервировано=Лев(КемЗарезервировано,СтрДлина(КемЗарезервировано)-3)+")"; КонецЕсли; глНеПроводить(Контекст,"На складе нет нужного свободного количества ТМЦ "+ТекНоменклатура.Наименование +". "+РазделительСтрок+" Всего осталось "+Строка(ОстатокНаСкладе)+" "+ТекНоменклатура.БазоваяЕдиница +". "+РазделительСтрок+" Зарезервировано по выписанным Заявкам "+Строка(РезервНаСкладе) +" "+ТекНоменклатура.БазоваяЕдиница+"."+КемЗарезервировано+РазделительСтрок+"Требуемое количество "+Строка(КолРезерва)+" "+ТекНоменклатура.БазоваяЕдиница); Возврат 0; КонецЕсли; |
|||
15
FreeFin
14.08.07
✎
13:00
|
Программно проводил...=думкаю шо не "этим" резервируется. ищи док наосновании, кот от имени "этого" твои резервы двигает.
|
|||
16
Klesk
14.08.07
✎
13:17
|
удалил все документы которые вводил - резерв остался :)
|
|||
17
Klesk
14.08.07
✎
13:23
|
помогло только в конфигураторе - пересчет служебных данных
|
|||
18
Skom
14.08.07
✎
13:25
|
(9) если не стоит галка автоматом удалять движения тогда провел док потом отменил а движения остались вот проверь....
|
|||
19
Klesk
14.08.07
✎
13:29
|
(18) Вся фишка в том, что при ручном создании и проведении работает нормально, а при программном такая вот...
|
|||
20
Ёпрст2
14.08.07
✎
13:30
|
(18) Чего, правда ? :)) ... фантазёры ...
|
|||
21
Стрелок
14.08.07
✎
13:30
|
(18) бред полный. учите матчасть. у непроведённого документа не может быть никаких движений. в любом положении галки. она работает только при повторном проведении проведённого документа
|
|||
22
Skom
14.08.07
✎
13:33
|
(21) у изначально непроведенного ДА
а вот если проведешь док а потом сделаешь отмену проведения то движения ОСТАЮТСЯ вот ради интереса попробуй убери галку у опердока проведи его, проверь движения... потом отмени и зайди в меню действия - движения документа тока процедуру ОтменаПроведения() пустую оставь и потом посмотрим кто прав а кто нет |
|||
23
Skom
14.08.07
✎
13:35
|
точнее обработкаудаленияпроведения
|
|||
24
Skom
14.08.07
✎
13:38
|
блин народ...
тока что попробовал не канает...что за бред что за фигня....я как то сталкивался с таким...было все как я описал я сам долго не мог въехать |
|||
25
Стрелок
14.08.07
✎
13:37
|
(22) хватит нести бред
|
|||
26
Skom
14.08.07
✎
13:39
|
блин ваще подстава....
но я точно помню что было такое |
|||
27
Skom
14.08.07
✎
13:39
|
(25) все не несу...
|
|||
28
Skom
14.08.07
✎
13:40
|
просто реально говорю сам долго въезжал что было когда подобная ситуевина была...
может на старой платформе было подобное может что ...но тут я не ошибаюсь был у мну такой косяк.... блин вот специально найду 21-ую платформу и проверю |
|||
29
Klesk
14.08.07
✎
13:41
|
Стрелок, ты не прав - движения остаются, и уходят только с пересчетом служебных данных, их надо вручную чистить, только где и как - не пойму...
|
|||
30
Стрелок
14.08.07
✎
13:43
|
(29) см 22
|
|||
31
Skom
14.08.07
✎
13:46
|
движения чистишь в предопределенной процедуре..ОбработкаУдаленияПроведения()
|
|||
32
FreeFin
14.08.07
✎
13:46
|
движения непроведенного документа в снеговике имеют/ли место...и в релизах до 14-го в клюшках.
|
|||
33
Skom
14.08.07
✎
13:48
|
(32) нугде то я с этим глюком точно сталкивался....
|
|||
34
FreeFin
14.08.07
✎
13:50
|
а в ВремРезервыТМЦ.ВыгрузитьИтоги(ТаблЗн,1,1);
Смотрим на КонОст = причьома тута движения? Итоги кривые а движения ищим. |
|||
35
Klesk
14.08.07
✎
13:53
|
Релиз 25
ОбработкаУдаленияПроведения() отсутствует Когда вручную вводишь док - никаких проблем |
|||
36
Стрелок
14.08.07
✎
13:54
|
о майн гот... пора поднимать на крыло пита
|
|||
37
Klesk
14.08.07
✎
14:09
|
Добавил ПроводитьПослеТА(1,1);
Вроде заработало :) |
|||
38
Стрелок
14.08.07
✎
14:15
|
(37) читай № 3 и думай о чём ты тут спорил
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |