![]() |
|
v7: ОБработка для путевого листа | ☑ | ||
---|---|---|---|---|
0
serg-lom89
28.01.13
✎
11:42
|
Добрый день
одна ситуация по путевым листам с нового года внесли остатки и показания спидометра не подхватились. нужно заходить в каждый документ,и перевыбирать автомобиль. Начал делать обработку для документа. Подскажите если что не так. Перебираем документ Затем сравниваем текущий реквизит со справочником. и записываем документ. Но как сделать что бы открывало и перевыбирала(подскажите пожалуйста может какая есть процедура или функция)? а то не правильно я делаю обработку скажите пожалуйста,вот делаю одну обработку,для путевых листов,для |
|||
1
Ёпрст
гуру
28.01.13
✎
11:53
|
больше кода
|
|||
2
serg-lom89
28.01.13
✎
11:54
|
(1) очень понятно=)
|
|||
3
Mikeware
28.01.13
✎
11:55
|
(0) не подхватываются показания спидометра - фигня.
главное - спид не подхвати! |
|||
4
Azverin
28.01.13
✎
11:56
|
(2) а нам тем более)))
|
|||
5
Mikeware
28.01.13
✎
11:57
|
(4) белорусы последний год доставляют изрядно...
похоже, пытаются изгнать чукчей из анекдотов... |
|||
6
serg-lom89
28.01.13
✎
11:58
|
у кого то есть какие варианты?подскажите
|
|||
7
Azverin
28.01.13
✎
12:00
|
(6) покажи свой код - появятся и варианты
|
|||
8
monsterZE
28.01.13
✎
12:05
|
(0) трава забористей, чем у меня =)
непонятно что с чем ты сравниваешь реквизит табличной части документа или реквизит шапки телепатирую - если при открытии документа и повторном выборе реквизита все становится, как должно быть - надо посмотреть процедуру, обрабатывающую выбор реквизита, скопипастить ее в свою обработку и пройтись по всем документам, пересчитывая что-то.. =) |
|||
9
serg-lom89
28.01.13
✎
12:11
|
(8) сравниваю шапку
|
|||
10
serg-lom89
28.01.13
✎
12:12
|
так я имею в виду как открыть сам реквизит в документе и опять его поставить в этот же документ?
|
|||
11
Ёпрст
гуру
28.01.13
✎
12:13
|
(10) свой код покажи, дурилко, что делаешь и что не получается и что нужно сделать
|
|||
12
serg-lom89
28.01.13
✎
12:16
|
Перем Сообшение;
Процедура ПриОткрытии() НачДата= НачМесяца(РабочаяДата()); КонДата= КонМесяца(РабочаяДата()); //Форма.Переч.Видимость(0); КонецПроцедуры Процедура Выполнить() НачатьТранзакцию(); ДокПутЛист=СоздатьОбъект("Документ.ПутевойЛист2Г"); ДокПутЛист.ВыбратьДокументы(НачДата,КонДата); СправАвто=СоздатьОбъект("Справочник.АвтомобилиПредприятия"); Пока ДокПутЛист.ПолучитьДокумент()>0 Цикл Если ДокПутЛист.Проведен()=1 Тогда Если ДокПутЛист.Автомобиль.Выбран()=1 Тогда Авто= ДокПутЛист.Автомобиль; Форма.ВыполнитьВыбор(Авто); СправАвто.ВыбратьЭлементы(); Пока СправАвто.ПолучитьЭлемент()>0 Цикл Если Авто=СправАвто.ТекущийЭлемент() ТОгда // ДокПутЛист.Автомобиль.Новый(); //ДокПутЛист.Автомобиль.ВыполнитьВыбор(ДокПутЛист.Автомобиль); ДокПутЛист.Автомобиль=СправАвто.ТекущийЭлемент(); //ДокПутЛист.Автомобиль.ВыполнитьВыбор(СправАвто.ТекущийЭлемент()); ДокПутЛист.Записать(); КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецЦикла; ЗафиксироватьТранзакцию(); Сообщить("Обработка закончена!",); КонецПроцедуры |
|||
13
Ёпрст
гуру
28.01.13
✎
12:19
|
(12) Что написано в формуле реквизита Автомобиль в документе ?
|
|||
14
Ёпрст
гуру
28.01.13
✎
12:19
|
а так-то, твой код в топку :)
|
|||
15
Ёпрст
гуру
28.01.13
✎
12:21
|
Должно быть так, примерно:
Процедура Выполнить() ДокПутЛист=СоздатьОбъект("Документ.ПутевойЛист2Г"); ДокПутЛист.УстановитьФильтр(1,0); ДокПутЛист.ВыбратьДокументы(НачДата,КонДата); Пока ДокПутЛист.ПолучитьДокумент()>0 Цикл Если ПустоеЗначение(ДокПутЛист.Автомобль)=0 Тогда глПриВыбореАвтомобиля(ДокПутЛист); ДокПутЛист.Записать(); КонецЕсли; КонецЦикла; Сообщить("Обработка закончена!",); КонецПроцедуры |
|||
16
serg-lom89
28.01.13
✎
12:29
|
(13) реквезит справочника АвтомобилиПредприятия
|
|||
17
serg-lom89
28.01.13
✎
12:30
|
и реквезиты в документе уже заполненны.их надо ппоперебирать
|
|||
18
Ёпрст
гуру
28.01.13
✎
12:31
|
(16) скриншот покажи что-ли
|
|||
19
Ёпрст
гуру
28.01.13
✎
12:33
|
Если ты утверждаешь, что при выборе Автомобиля в документе "перезаполняются" остальные реквизиты, то в его в формуле этого реквизита должен быть вызов функции, которая делает это.
Ежели там ничего нет, смотри, что написано в ОбработкаВыбораЗнаячения |
|||
20
serg-lom89
28.01.13
✎
12:39
|
да там когда выбираешь авто,естьт процедура ПриВыбореАвто() (19)
|
|||
21
serg-lom89
28.01.13
✎
12:40
|
и реквезиты все не пересчитываються,а только один реквезит Шапки документа,показания спидометра на начало дня
|
|||
22
Ёпрст
гуру
28.01.13
✎
12:41
|
(21) Вот теперь открой ПриВыбореАвто и её код скопируй вот сюды:
Если ПустоеЗначение(ДокПутЛист.Автомобль)=0 Тогда //вот сюда .... ДокПутЛист.Записать(); КонецЕсли; |
|||
23
Ёпрст
гуру
28.01.13
✎
12:41
|
и наслаждайся
|
|||
24
serg-lom89
29.01.13
✎
16:06
|
(23) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |