|
Помогите с обработкой | ☑ | ||
---|---|---|---|---|
0
it-ilfat
27.02.15
✎
10:43
|
Опишу ситуацию. Необходимо во всех документах приходного ордера сменить Подразделение на значение "Основное подразделение". Понимаю задача легкая, но прошу Вашей помощи. Почему он не присваивает значение, не пойму. Заранее спасибо.
Код: Процедура ОсновныеДействияФормыВыпольнить(Кнопка) Докум = Документы.ПриходныйКассовыйОрдер.Выбрать(); Пока Докум.Следующий() Цикл док = Докум.ПолучитьОбъект(); Если док.ПодразделениеОрганизации <> "Основое подразделение" Тогда док.ПодразделениеОрганизации="ОсновноеПодразделение"; док.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
1
Godofsin
27.02.15
✎
10:44
|
Потому что подразделениеОрганизации это не строка
|
|||
2
Ненавижу 1С
гуру
27.02.15
✎
10:45
|
Если док.ПодразделениеОрганизации <> "Основое подразделение" Тогда
подсказываю док.ПодразделениеОрганизации - не строка, так что же ты его со строкой сравниваешь? |
|||
3
mikecool
27.02.15
✎
10:45
|
(0) используй обработку справочников и документов
есть в типовых(некоторых) или на итс |
|||
4
MSOliver
27.02.15
✎
10:46
|
(3) апаздал
|
|||
5
it-ilfat
27.02.15
✎
10:46
|
А как лучше данный код подправить?
|
|||
6
Godofsin
27.02.15
✎
10:46
|
(3) а в каких типовых ее нет?
|
|||
7
Ненавижу 1С
гуру
27.02.15
✎
10:47
|
(5) данный код лучше выкинуть
|
|||
8
it-ilfat
27.02.15
✎
10:47
|
Наименование сравнить не могу, так как это тоже не строка. А по отладке и значению у него значение равно данному выражению
|
|||
9
1976vas
27.02.15
✎
10:48
|
(5) Ты не сможешь присвоить строку док.ПодразделениеОрганизации
|
|||
10
MSOliver
27.02.15
✎
10:48
|
(6) в УТ11 она не много другая, групповое измение
|
|||
11
Ненавижу 1С
гуру
27.02.15
✎
10:48
|
"Наименование сравнить не могу, так как это тоже не строка"
а что это? |
|||
12
Godofsin
27.02.15
✎
10:48
|
(5) Лучше воспользоваться вариантом (3)
|
|||
13
MSOliver
27.02.15
✎
10:49
|
(12) это опасно
|
|||
14
Godofsin
27.02.15
✎
10:49
|
(13) Его программирование не менее опасно =)
|
|||
15
mikecool
27.02.15
✎
10:50
|
(6) в УТ 11 не нашел с ходу
|
|||
16
1976vas
27.02.15
✎
10:50
|
(12) Он никак не сможет "сменить Подразделение на значение "Основное подразделение"" и ничем
|
|||
17
mikecool
27.02.15
✎
10:50
|
(10) о как )
|
|||
18
it-ilfat
27.02.15
✎
10:50
|
типовой обработчик групповой обработки объектов вообще не запускается даже. Как лучше быть? Конфигурация БП 3.0
|
|||
19
Ненавижу 1С
гуру
27.02.15
✎
10:51
|
(18) уходить оттуда
|
|||
20
Godofsin
27.02.15
✎
10:51
|
(16) ... и ничем ему не помочь? )))
|
|||
21
MSOliver
27.02.15
✎
10:52
|
(15) выдели несколько строк в форме списка и контекстное меню. Вот оно теперь как)
|
|||
22
Andrewww123
27.02.15
✎
10:52
|
(0) Перед циклом сделай
"ОсновноеПодразделение = Справочники.Подразделения.НайтиПоНаименованию("Основное подразделение");" и в цикле сравнивай с этой переменной и её же присваивай реквизиту документа. |
|||
23
MSOliver
27.02.15
✎
10:53
|
Все элементы справочника Подразделения переименовать в "Основное подразделение"
|
|||
24
Godofsin
27.02.15
✎
10:53
|
(22) А не ПодразделенияОрганизаций?
|
|||
25
Andrewww123
27.02.15
✎
10:54
|
(24) Ну это уже на месте разберется..
|
|||
26
mikecool
27.02.15
✎
10:54
|
(21) и чего там? у меня никакого группового изменения нет (
|
|||
27
MSOliver
27.02.15
✎
10:55
|
Внимательно читайте сабж:Необходимо во всех документах приходного ордера сменить Подразделение на значение "Основное подразделение". Ответ в (23)
|
|||
28
1976vas
27.02.15
✎
10:56
|
(20) Можно, если в справочнике Подразделение есть подразделение Основное подразделение. :)
|
|||
29
Andrewww123
27.02.15
✎
10:57
|
Пятничное трололо? :)
|
|||
30
MSOliver
27.02.15
✎
10:57
|
(24) Даже СтруктураПредприятия может быть, а в реквизите Подразделение :)
|
|||
31
1976vas
27.02.15
✎
11:00
|
(27) А потом как будет аналитика по Основному подразделению собираться?
|
|||
32
Godofsin
27.02.15
✎
11:01
|
Кто вручит бомбу юному подавану?
|
|||
33
MSOliver
27.02.15
✎
11:02
|
Хм... так это БП 3.0... Выборка на клиенте, стало быть вы БП 3.0 в обычном приложении открываете?
|
|||
34
Любопытная
27.02.15
✎
11:02
|
(0) потому что ты в ссылку запихиваешь строку
|
|||
35
MSOliver
27.02.15
✎
11:02
|
(31) мух отдельно от котлет!)
|
|||
36
it-ilfat
27.02.15
✎
11:03
|
да, в обычном открываем для запуска обработчика.
|
|||
37
MSOliver
27.02.15
✎
11:05
|
Процедура ОсновныеДействияФормыВыпольнить(Кнопка)
ОсновноеПодразделение = Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Основое подразделение"); Докум = Документы.ПриходныйКассовыйОрдер.Выбрать(); Пока Докум.Следующий() Цикл док = Докум.ПолучитьОбъект(); Если док.ПодразделениеОрганизации <> ОсновноеПодразделение Тогда док.ПодразделениеОрганизации=ОсновноеПодразделение; док.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
38
it-ilfat
27.02.15
✎
11:06
|
(37) Большое спасибо. Так и понял.
|
|||
39
Godofsin
27.02.15
✎
11:07
|
(37) Ставлю 50 руб на то, что после этого у него будут пустые ссылки в подразделении ))))
|
|||
40
Godofsin
27.02.15
✎
11:07
|
Если бездумно копировать будет )))
|
|||
41
vhl
27.02.15
✎
11:10
|
Гонокод, костыль, но самое простое и быстрое решение:
Если СокрЛП(док.ПодразделениеОрганизации) <> "Основое подразделение" |
|||
42
MSOliver
27.02.15
✎
11:12
|
(41) изменять то на чё?
|
|||
43
MSOliver
27.02.15
✎
11:13
|
(39) ну я название из (0) брал
|
|||
44
vhl
27.02.15
✎
11:13
|
(42) чорт (
|
|||
45
MSOliver
27.02.15
✎
11:15
|
(44) да не переживай, он не проведённые документы без пометки удаления проведёт, или на ошибку нарвется...
|
|||
46
it-ilfat
27.02.15
✎
11:36
|
(45) а если непроведенных и помещенных на удаление доков не будет?))
|
|||
47
D_E_S_131
27.02.15
✎
11:37
|
(46) Тогда считай, что повезло.
|
|||
48
Andrewww123
27.02.15
✎
11:38
|
+ (37) Нужно "ПолучитьОбъект()" делать после проверки подразделения.
|
|||
49
it-ilfat
27.02.15
✎
11:41
|
(48) для чего?
|
|||
50
Andrewww123
27.02.15
✎
11:42
|
(49) Чтобы не считывать весь объект, если не нужна его обработка. До конца не уверен, скорее всего он и так полностью в кэш будет считан при обращении к "док.ПодразделениеОрганизации", но интуиция подсказывает что будет правильнее.
|
|||
51
D_E_S_131
27.02.15
✎
11:52
|
(50) Да и ссылки, в которых нужно заменить подразделение лучше сразу запросом получить все, а не гонять выборку.
|
|||
52
Godofsin
27.02.15
✎
12:01
|
ОсновноеПодразделение = Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Основное подразделение")
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПриходныйКассовыйОрдер.Ссылка |ИЗ | Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер |ГДЕ | ПриходныйКассовыйОрдер.Проведен | И ПриходныйКассовыйОрдер.Подразделение <> &ОсновноеПодразделение"; Запрос.УстановитьПараметр("ОсновноеПодразделение", ОсновноеПодразделение); Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Сообщить("Документы с не правильным подразделением не нашлись"); Возврат; КонецЕсли; Выборка = Результат.Выбрать(); Пока Выборка.Следующий() цикл ДокОбъект = Выборка.ПолучитьОбъект(); ДокОбъект.ПодразделениеОрганизации = ОсновноеПодразделение; Попытка ДокОбъект.Записать(РежимЗаписиДокумента.Проведение); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; |
|||
53
Godofsin
27.02.15
✎
12:02
|
Вот что с человеком делает скука...
|
|||
54
vhl
27.02.15
✎
12:05
|
(52) не будет работать
|
|||
55
1976vas
27.02.15
✎
12:05
|
(53) Лучше НайтиПоНаименованию заменить на НайтиПоКоду, наверное, может подразделение быть Основное подразделение2
|
|||
56
Godofsin
27.02.15
✎
12:10
|
(54) Да да
ДокОбъект = Выборка.Ссылка.ПолучитьОбъект(); |
|||
57
Godofsin
27.02.15
✎
12:10
|
(55) Исходил из условий в (0)
|
|||
58
1976vas
27.02.15
✎
12:12
|
(57) В справочнике помимо "Основное подразделение" может быть "Основное подразделение такое-то", он и его подхватит.
|
|||
59
Godofsin
27.02.15
✎
12:13
|
(58) =)
ОсновноеПодразделение = Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Основное подразделение", Истина); |
|||
60
Godofsin
27.02.15
✎
12:15
|
(58) Не сразу понял на что ты в (55) намекал
|
|||
61
1976vas
27.02.15
✎
12:19
|
(60) Истина - будет полностью совпадать с наименованием (за исключением "хвостовых" пробелов в наименовании). :)
|
|||
62
Godofsin
27.02.15
✎
12:21
|
(61) Ну все, сдаюсь ))) Пусть тогда по коду ищет))) а еще лучше интерактивно выбирает.
|
|||
63
1976vas
27.02.15
✎
12:23
|
(62) :)
|
|||
64
vhl
27.02.15
✎
12:36
|
(62) еще можно сделать предопределенным :)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |