|
Удаление товаров (помеченных на удаление) из документов, обработка | ☑ | ||
---|---|---|---|---|
0
LastSoldier
16.01.15
✎
12:24
|
Всем привет! 1С:Предприятие 8.3 (8.3.5.1383) и УТ 11.1 (11.1.9.66).
Задача такая, есть в базе очень много номенклатуры (50к примерно), я вручную просмотрел движения всей номенклатуры и пометил на удаление ту номенклатуру по которой в базе не было никаких движений и остатков (понимаю что бред было это все смотреть, но всего 1 день ушел на это))), т.е. помеченная на удаление номенклатура фигурирует только в документах "Установка цен", но она не удаляется из-за этой установки цен, да же если отменить проведение этого документа. Я хочу сделать небольшую проверку в "Процедура ПриОткрытии" для документа "установка цен" (Всего будет проверяться при открытии 5 документов установки цен), проверка пробегает по документу "Установка цен" и смотрит, помечен этот товар на удаление или нет, если да, то удалить эту строчку товара, если нет, двигаться дальше. Я вот не пойму как сделать саму проверку товара из "Установка цен" со всей номенклатурой базы |
|||
1
GreatOne
16.01.15
✎
12:27
|
В теме слово "обработка", а сам меняешь документ
|
|||
2
GreatOne
16.01.15
✎
12:27
|
СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>)
|
|||
3
LastSoldier
16.01.15
✎
12:28
|
(1) ну создать небольшую обработку для документа, которая в последствии что-то там меняет. или неправильно?
|
|||
4
salvator
16.01.15
✎
12:29
|
" я вручную просмотрел движения всей номенклатуры и пометил на удаление ту номенклатуру по которой в базе не было никаких движений и остатков (понимаю что бред было это все смотреть, но всего 1 день ушел на это)))"
Ну дык, еще пару дней и без обработки можно обойтись. |
|||
5
deniseek
16.01.15
✎
12:31
|
(3) Пока эта номенклатура будет в документах, непомеченных на удаление- не удалишь. Определяйся- помечаешь на удаление Установку цен и удаляешь вместе с номенклатурой. Или смиряешься.
|
|||
6
LastSoldier
16.01.15
✎
12:31
|
(4) блин, ну хватит прикалываться, я только учусь )
|
|||
7
Spyke
16.01.15
✎
12:31
|
(4) + 100500
|
|||
8
Spyke
16.01.15
✎
12:32
|
(0) Зачем при открытии документа???
Ты их будешь все в ручную открывать???? |
|||
9
LastSoldier
16.01.15
✎
12:32
|
(5) в документа "Установка цен" 60% товара удалять нельзя.
Если бы было все так просто |
|||
10
LastSoldier
16.01.15
✎
12:33
|
(8) да, а их всего 5 штук, это же не 100
|
|||
11
salvator
16.01.15
✎
12:34
|
(6) Напиши запрос, будь мужиком!
|
|||
12
deniseek
16.01.15
✎
12:34
|
(10) Значит смирись, или удаляй из установок цен эту номенклатуру обработкой.
|
|||
13
LastSoldier
16.01.15
✎
12:36
|
(12) так вот и хочу сделать обработку
|
|||
14
Admin_Net_1C
16.01.15
✎
12:36
|
(0) http://dropmefiles.com/JsGfQ
держи |
|||
15
GreatOne
16.01.15
✎
12:36
|
(13)Обойти в цикле всю номенклатуру документа и удалить из ТЧ элементы, помеченные на удаление.
|
|||
16
deniseek
16.01.15
✎
12:37
|
||||
17
LastSoldier
16.01.15
✎
12:37
|
(11) Я пока не профи в этих делах, умею только добавлять на формы документов новые поля и заполнять по ним данные и то же самое делать по почетным формам
|
|||
18
LastSoldier
16.01.15
✎
12:38
|
(16) прикольно )))
|
|||
19
H A D G E H O G s
16.01.15
✎
12:38
|
(0) Ооо, вот и еще один.
Была точно такая же тема, надо искать. |
|||
20
GreatOne
16.01.15
✎
12:38
|
(14) а я как сижу и думаю, там же вроде с конца надо тч обходить.. Спасибо, напомнил
|
|||
21
salvator
16.01.15
✎
12:39
|
(17) Почетные формы? Это кто?
|
|||
22
deniseek
16.01.15
✎
12:39
|
(17) По почетным? Это почетно! )
|
|||
23
salvator
16.01.15
✎
12:41
|
(22) Реквизитам везде у нас дорога, формам везде у нас почет!
|
|||
24
LastSoldier
16.01.15
✎
12:42
|
(21) (22) печатным
|
|||
25
LastSoldier
16.01.15
✎
12:43
|
(20) это да, каждый товар из "Установки цен", проверять заново по базе номенклатуры
|
|||
26
1976vas
16.01.15
✎
12:43
|
(24)Отмени проведение документов, а потом обработкой удали номенклатуру
|
|||
27
LastSoldier
16.01.15
✎
12:44
|
(26) так я это и хочу сделать, пробую написать обработку эту самую
|
|||
28
LastSoldier
16.01.15
✎
12:46
|
(14) а эта твоя обработка работает так как мне и надо?
|
|||
29
salvator
16.01.15
✎
12:49
|
(28) До чего ленивый народ пошел. Посмотри код и разберись в готовом. Не уверен - напиши сам. Примеров как удалять строки по условию из табличной части в сети полным-полно.
|
|||
30
Admin_Net_1C
16.01.15
✎
12:50
|
(28) мне за тебя сделать копию базы и на ней проверить, или тупо открыть обработку и посмотреть код...
|
|||
31
Admin_Net_1C
16.01.15
✎
12:50
|
(29)+1)))
|
|||
32
LastSoldier
16.01.15
✎
12:51
|
(29) (30) да че вы так накинулись сразу, вот щас смотрю и разбираюсь в коде, запустил ее, она мне выдала справа сообщение и там большой список товаров
|
|||
33
salvator
16.01.15
✎
12:54
|
Как-то так
...выборка документов "установка цен"... ...получение объекта... ТЧ = ДокОбъект.ИмяТабЧасти; Индекс = ТЧ.Количество()-1; Для Сч=0 По Индекс Цикл Если ТЧ[Сч].Номенклатура.ПометкаУдаления Тогда ТЧ.Удалить(Сч); Индекс = Индекс-1; Сч=Сч-1; КонецЕсли; КонецЦикла; ..записать... |
|||
34
LastSoldier
16.01.15
✎
13:00
|
(31) по коду просмотрел, оказывается все просто делается.
Я пока не могу еще научиться делать внешние обработки, на примере скинутой твоей и не могу понять кагда надо использовать это "Процедура ВыполнитьИзменениеНаСервере()". То что надо все работает, я так понял что она еще перепроводит документ после обработки |
|||
35
LastSoldier
16.01.15
✎
13:01
|
не могу понять именно разницы что должно делаться на клиенте, а что на сервере
|
|||
36
LastSoldier
16.01.15
✎
13:05
|
(31) Подскажи, я вот смотру в конфигураторе твою обработку, как берутся в твое поле именно документы "Установка цен", не могу понять?
"ПутьКДанным ОбъектДокСсылка" это я так понимаю показывает список всех документов "Установки цен" |
|||
37
GreatOne
16.01.15
✎
13:06
|
(34) а она кстати не совсем правильно работает
|
|||
38
LastSoldier
16.01.15
✎
13:06
|
(37) а что с ней не так?
|
|||
39
GreatOne
16.01.15
✎
13:09
|
(38) счетчик не уменьшается при удалении строки ТЧ, вылезет ошибка в конце документа
|
|||
40
John83
16.01.15
✎
13:11
|
(33) ты сам пробовал так удалять?
если уж на то пошло, то обход с конца делать надо, а еще лучше, сначала ищутся нужные строки, а затем удаляются |
|||
41
LastSoldier
16.01.15
✎
13:11
|
(39) ты хочешь сказать что в конце надо было сделать так
тзТовары.Удалить(Сч); Сч = Сч - 1; Иначе Сч = Сч - 1; |
|||
42
deniseek
16.01.15
✎
13:13
|
+(33) проверять еще, что это строка не последняя (Не первая в смысле), иначе ошибка будет...
|
|||
43
LastSoldier
16.01.15
✎
13:13
|
(40) это типо пройтись по всему документу и только поменить те элементы которые надо удалить, а когда все помечены, разом их удалить?
|
|||
44
deniseek
16.01.15
✎
13:15
|
(43) Да нет же, идти пот последней строки по первую и удалять. Удаляя количество строк в табличной части становится на 1 меньше, иначе удалишь не ту строку, если идти от начала до конца.
|
|||
45
LastSoldier
16.01.15
✎
13:16
|
Скажите для чего это сделано вначале?
"Сч = тзТовары.Количество()-1;" Это означает что в таблице документа к примеру 300 наименований, а в программе хранится как 301? Я правильно понял |
|||
46
GreatOne
16.01.15
✎
13:17
|
(40) да не, выгрузить в ТЗ, запросом убрать лишнее, получить новую ТЗ, и ТЧ.Загрузить(ТЗ_Запроса);
|
|||
47
John83
16.01.15
✎
13:17
|
(43) идешь по ТЧ, в массив пихаешь нужные строки, затем обходишь этот массив и удаляешь строки
Табличная часть.Удалить (Tabular section.Delete) Табличная часть (Tabular section) Удалить (Delete) Синтаксис: Удалить(<Индекс>) Параметры: <Индекс> (обязательный) Тип: Число; Строка табличной части. Индекс удаляемой строки в табличной части, либо сама удаляемая строка. Описание: Удаляет строку с указанным индексом из табличной части. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения. Пример: Состав.Удалить(3); |
|||
48
LastSoldier
16.01.15
✎
13:17
|
(44) ясно, просто цикл тот же, только с конца
|
|||
49
John83
16.01.15
✎
13:17
|
(46) это лучший вариант, но боюсь, что ТС не осилит :)
|
|||
50
deniseek
16.01.15
✎
13:17
|
(45) Нет. Индекс строк от 0 до КоличествоСтрок()-1
|
|||
51
LastSoldier
16.01.15
✎
13:19
|
(50) ааа, типо первый элемен, он же нулевой
|
|||
52
LastSoldier
16.01.15
✎
13:23
|
а разве он делает тут проверку не с конца???
Пока Сч >= 0 Цикл. я попробовал эту обработку, ну вроде все отработало правильно, товар удалило и документа "Установки цен" и теперь он нормально удаляется из базы |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |