Имя: Пароль:
1C
1C 7.7
v7: Перевыбрать реквизит
0 serg-lom89
 
23.09.13
15:46
ребята такое дело
Дорабатывался документ Путевой лист.он задним числом перепровел его и вышло так что с начала месяца пошли не правильно остатки по холодильным установкам.(остатки берутся из забалансового счета).Как в обработке выполнить действие при  выборе автомобился?т.е. перебрать реквизит автомобиль
1 Rie
 
модератор
23.09.13
15:47
(0) Для начала - неплохо было бы назвать конфигурацию.
2 serg-lom89
 
23.09.13
15:48
Только приВыбореАвто в процедуре ,там же остатки спидомера и топлива что бы не полетели...как обойти этот нюанс
3 Mikeware
 
23.09.13
15:48
(1) самописька.
4 Mikeware
 
23.09.13
15:48
(2) а чего ваши программиста-то не наймут?
5 serg-lom89
 
23.09.13
15:48
(1) Бухучет (3) и это есть))
6 serg-lom89
 
23.09.13
15:49
может какая нить функция или процедура для этого есть
7 Rie
 
23.09.13
15:50
(3) Дык ясен пень. А теперь кидаем монетку - кто будет телетяпить, что там у автора написяно?
8 Rie
 
23.09.13
15:51
(6) Для чего именно?
9 serg-lom89
 
23.09.13
15:52
(8) для того что бы перевыбрать автомобиль..реквизит..
Просто доков многовато и перевыбирать в ручную не катит
10 Mikeware
 
23.09.13
15:52
(7) а он хочет, чтоб сделалось независимо от того, что там написано....
в принципе, сделать несложно - получить через формекс из контекста реквизит, из реквизита - функцию "при выборе", ну и открывать форму, вызывать функцю для всех доков.
строк 15 от силы. но лениво...
11 serg-lom89
 
23.09.13
15:53
(10) получить через формекс из контекста реквизит??
пример для этой части можно если не сложно?)
12 КапЛей
 
23.09.13
15:54
сколько Вы готовы заплатить? Сделаю в течении часа после получения выгрузки в почту.
13 Mikeware
 
23.09.13
15:54
(11) читай справку по формексу.
зы. и наймите программиста.
14 Mikeware
 
23.09.13
15:55
(12) да, кстати, наверное так и надо подходить....
15 Rie
 
23.09.13
15:56
(11) Вам это не нужно. Реквизит Вы и безо всякого формекса получите - просто обратившись к нему по имени.
Обработчик формулы - вот тут формекс понадобится. Однако сильно подозреваю, что как раз в этом обработчике и прячется фигня. Так что не вызывать его надо, а исправлять.
16 serg-lom89
 
23.09.13
16:02
(15) получил например атрибут,потом я так понимаю надо выполнить всю процедуру которая срабатывает при выборе автомобиля?
17 serg-lom89
 
23.09.13
16:02
*реквизит
18 Rie
 
23.09.13
16:09
(16) Откройте Конфигуратор. Посмотрите, какая процедура записана у Вас в формуле для поля ввода, связанного с реквизитом Автомобиль (или как он там называется). И вызовите её.
Формекс даст Вам общее решение. Но Вам оно не надо. Вам надо в Вашем частном случае посмотреть, что делается.
Процедуру из формы вызвать "снаружи" не просто. Но опять-таки - посмотрите типовые. Там ПриОткрытии дёргаются процедуры формы (иногда). А Вам, возможно, имеет смысл эту процедуру опубликовать - если Вы планируете её часто использовать.
19 serg-lom89
 
23.09.13
16:10
(18) а без Формекс никак?
20 Mikeware
 
23.09.13
16:11
(15) "а это уже второй сложный вопрос!"©
и вообще, он получит значение реквизита, но не сам реквизит (и поэтому не сможет получить имя функции на изменении реквизита). Хотя, возможно, обработчик - ПриВыбореЗначения, или как его там...
21 Ёпрст
 
23.09.13
16:14
(19) еще как.
Формекс, если че, там как бэ и не нужен вовсе.
22 Mikeware
 
23.09.13
16:19
(19) для решения частной задачи - формекс вообще не нужен. и вообще ничего не нужно, кроме 6 строк, написаных вручную, и одного куска скопипастить из документа...
23 serg-lom89
 
23.09.13
16:28
выберем доки,проверимся на наш авто...а как именно перебрать его..потом то подсунем Процедуру для нашего автомобиля
24 Mikeware
 
23.09.13
16:33
(23) а зачем его перевыбирать?
зы. наймите программиста. например, (12)
25 Rie
 
23.09.13
16:34
(23) Что-то вроде
Док = СоздатьОбъект("Документ.ТотСамыйВашДокумент");
Док.ВыбратьДокументы(СКакойДаты,ПоКакуюДату);
Пока Док.ПолучитьДокумент()=1 Цикл
    // Вот тут Док - это и есть тот самый документ
    Если Док.Автомобиль=УраНашАвтомобиль Тогда
        // что-то делаем полезное
        Док.Записать();
        Если Док.Проведен()=1 Тогда
            Док.Провести();
        КонецЕсли;
    КонецЕсли;
КонецЦикла;
26 Ёпрст
 
23.09.13
16:35
(23) На вот, сделаешь по-аналогии

Док = СодатьОбъект("Документ.Вася");
Док.УстановитьФильтр(1,0);
Док.ВыбратьДокументы(НачДата,КонДата);
Пока Док.ПолучитьДокумент()=1 Цикл
  глПриВыбореПепелаца(Док);
  Док.Записать();
  Док.Провести();
КонецЦикла;
27 Ёпрст
 
23.09.13
16:36
Пилять, у дураков мысли сходются ©...