|
Удаление РегистрыНакопления.ТоварыВРезервеНаСкладах | ☑ | ||
---|---|---|---|---|
0
neo-55555
23.01.15
✎
00:33
|
Доброй ночи, друзья. Помогите, пожалуйста. Нужно удалить в регистре накопления - Товары в резервах на складах, те документы у которых документ резерва ПУСТОЙ
Написал обработку, не понимаю что нужно вставить в регистратор для такого отбора Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | * | ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей(); Пока Выборка.Следующий() Цикл НаборЗаписей.Отбор.Регистратор.Установить( НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); КонецЦикла; КонецПроцедуры |
|||
1
GreatOne
23.01.15
✎
00:47
|
|
|||
2
GreatOne
23.01.15
✎
00:49
|
+ к (1)
Отбор.Вставить("Документрезерва",Документы.ЗаказПокупателя.ПустаяСсылка()); Или как-нибудь "В" придумать, там же несколько типов документов. Я уже пьяный, хз как там |
|||
3
neo-55555
23.01.15
✎
00:49
|
Что-то я не совсем понимаю, какой отбор нужно писать в регистратор...
|
|||
4
GreatOne
23.01.15
✎
00:50
|
(3)пустую ссылку
|
|||
5
GreatOne
23.01.15
✎
00:50
|
или неопределено. Посмотри, что там запрос выдает
|
|||
6
neo-55555
23.01.15
✎
00:50
|
Спасибо за подсказку, сейчас попробую
|
|||
7
neo-55555
23.01.15
✎
00:58
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | * | ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей(); Пока Выборка.Следующий() Цикл НаборЗаписей.Отбор.Найти("Документрезерва",Документы.ЗаказПокупателя.ПустаяСсылка()); НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); КонецЦикла; КонецПроцедуры |
|||
8
neo-55555
23.01.15
✎
00:59
|
Выдает ошибку. Не понимаю, что это
{Форма.Форма.Форма(18)}: Слишком много фактических параметров НаборЗаписей.Отбор.Найти("Документрезерва",Документы.ЗаказПокупателя.ПустаяСсылка()); |
|||
9
ssh2QQ6
23.01.15
✎
01:03
|
(0) поломаешь базу.
Выбери запросом остатки регистра резервов где документ резерва пустой и корректировкой записей регистров обнули остатки |
|||
10
neo-55555
23.01.15
✎
01:05
|
Подскажите, пожалуйста, как это делается. А то я в этом чайник. Никогда не делал этого.
|
|||
11
GreatOne
23.01.15
✎
01:07
|
(8)
РегистрНакопленияНаборЗаписей.<Имя регистра накопления> (AccumulationRegisterRecordSet.<Имя регистра накопления>)
Отбор на регистратор ставится. На пустую ссылку в твоем случае. А так да, в (9) прав))) |
|||
12
neo-55555
23.01.15
✎
01:20
|
Вроде маленькая обработка, а не получается и всё тут. Не знаю уже что делать
|
|||
13
neo-55555
23.01.15
✎
01:21
|
Пишу таким образом
НаборЗаписей.Отбор.Найти(Документы.ЗаказПокупателя.ПустаяСсылка()); |
|||
14
neo-55555
23.01.15
✎
01:22
|
Помогите, пожалуйста.
|
|||
15
GreatOne
23.01.15
✎
01:34
|
НаборЗаписей.Отбор.Регистратор.Значение = Документы.ЗаказПокупателя.ПустаяСсылка();
НаборЗаписей.прочитать(); |
|||
16
neo-55555
23.01.15
✎
08:00
|
В общем получилось следующее:
Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | * | ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей(); Пока Выборка.Следующий() Цикл НаборЗаписей.Отбор.Регистратор.Значение = Документы.ЗаказПокупателя.ПустаяСсылка(); НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); КонецЦикла; КонецПроцедуры |
|||
17
neo-55555
23.01.15
✎
08:02
|
И выходит ошибка:
{Форма.Форма.Форма(23)}: Ошибка при вызове метода контекста (Записать) НаборЗаписей.Записать(); по причине: Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Товары в резерве на складах) Удалял НаборЗаписей.Записать(); Ошибок нет, но ничего не делает вообще. |
|||
18
НЕА123
23.01.15
✎
08:14
|
зачем запрос, циклы, Прочитать?
Процедура КнопкаВыполнитьНажатие(Кнопка) НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.УСТАНОВИТЬ( Документы.ЗаказПокупателя.ПустаяСсылка()); НаборЗаписей.Записать(); КонецПроцедуры |
|||
19
НЕА123
23.01.15
✎
08:15
|
(18)+
только осторожнее с такими делами... |
|||
20
neo-55555
23.01.15
✎
08:34
|
Ну я не профессионал в таких делах, я только учусь. Спасибо за умные мысли. Попробую
|
|||
21
neo-55555
23.01.15
✎
08:39
|
Сделал так:
Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | * | ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах"; НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.УСТАНОВИТЬ( Документы.ЗаказПокупателя.ПустаяСсылка()); НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); КонецПроцедуры |
|||
22
neo-55555
23.01.15
✎
08:40
|
В итоге такая же ошибка:
{Форма.Форма.Форма(22)}: Ошибка при вызове метода контекста (Записать) НаборЗаписей.Записать(); по причине: Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Товары в резерве на складах) |
|||
23
Зачем1С
23.01.15
✎
08:48
|
(21) Дык ты делаешь отбор по регистратору, а он не ПустаяСсылка. В Запросе сразу отбор сделай по пустым документам резерва, а потом только обрабатывай наборызаписей с отбором по регистратору из резулльтата запроса
|
|||
24
neo-55555
23.01.15
✎
08:53
|
Вы имеете в виду так:
Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | * | ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах; | ГДЕ | ТоварыВРезервеНаСкладах.ЗаказПокупателя = ЗНАЧЕНИЕ (Документы.ЗаказПокупателя.ПустаяСсылка())"; НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.УСТАНОВИТЬ(Документы.ЗаказПокупателя.ПустаяСсылка()); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); КонецПроцедуры |
|||
25
Зачем1С
23.01.15
✎
08:55
|
Только вот
НаборЗаписей.Отбор.Регистратор.УСТАНОВИТЬ(Документы.ЗаказПокупателя.ПустаяСсылка()); Не Документы.ЗаказПокупателя.ПустаяСсылка(), а Выборка.Регистратор |
|||
26
neo-55555
23.01.15
✎
08:59
|
Тогда нужно ВЫБОРКУ задавать?
|
|||
27
neo-55555
23.01.15
✎
09:03
|
Уже со вчерашнего дня мучаюсь над этой обработкой
|
|||
28
Зачем1С
23.01.15
✎
09:03
|
Загони результат запроса в цикл, вот и выборка
|
|||
29
neo-55555
23.01.15
✎
09:06
|
Вы имеете в виду?
Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | * | ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах; | ГДЕ | ТоварыВРезервеНаСкладах.ЗаказПокупателя = ЗНАЧЕНИЕ(Документы.ЗаказПокупателя.ПустаяСсылка())"; Выборка = Результат.Выбрать(); НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей(); Пока Выборка.Следующий()Цикл НаборЗаписей.Отбор.Регистратор.УСТАНОВИТЬ(Выборка.Регистратор); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); КонецЦикла; КонецПроцедуры |
|||
30
neo-55555
23.01.15
✎
09:24
|
Помогите, пожалуйста, люди добрые. Очень нужна обработка эта...
|
|||
31
НЕА123
23.01.15
✎
09:40
|
должно удалить пустые, неопределено, битые.
только на копии делай. Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | Регистратор | ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах; | ГДЕ | ТоварыВРезервеНаСкладах.Регистратор.Ссылка Есть NULL"; Выборка = Результат.Выбрать(); НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей(); Пока Выборка.Следующий()Цикл НаборЗаписей.Отбор.Регистратор.УСТАНОВИТЬ(Выборка.Регистратор); НаборЗаписей.Записать(); КонецЦикла; КонецПроцедуры PS че-то очкую я, Ришат.(с) |
|||
32
eklmn
гуру
23.01.15
✎
09:42
|
пля запусти ТИИ уже с нужными параметрами
|
|||
33
neo-55555
23.01.15
✎
09:47
|
Запускал, не получается. Не удаляет...
|
|||
34
eklmn
гуру
23.01.15
✎
09:49
|
(33) а радиобаттоны поставил чтоб удаляло?
|
|||
35
neo-55555
23.01.15
✎
10:09
|
НЕА123, пишет ошибку
{Форма.Форма.Форма(12,11)}: Переменная не определена (Результат) Выборка = <<?>>Результат.Выбрать(); (Проверка: Толстый клиент (обычное приложение)) |
|||
36
ДенисЧ
23.01.15
✎
10:11
|
(35) Результат = Запрос.Выполнить();
))) |
|||
37
neo-55555
23.01.15
✎
10:13
|
Теперь проблема
{Форма.Форма.Форма(12)}: Ошибка при вызове метода контекста (Выполнить) Результат = Запрос.Выполнить(); по причине: {(5, 5)}: Ожидается выражение "ВЫБРАТЬ" <<?>>ГДЕ Код: Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | Регистратор | ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах; | ГДЕ | ТоварыВРезервеНаСкладах.Регистратор.Ссылка Есть NULL"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей(); Пока Выборка.Следующий()Цикл НаборЗаписей.Отбор.Регистратор.УСТАНОВИТЬ(Выборка.Регистратор); НаборЗаписей.Записать(); КонецЦикла; КонецПроцедуры |
|||
38
neo-55555
23.01.15
✎
10:14
|
Вроде всё правильно. Не пойму ошибку
|
|||
39
ДенисЧ
23.01.15
✎
10:15
|
| ИЗ
| РегистрНакопления.ТоварыВРезервеНаСкладах; Тут ; лишняя.... Надо иногда включать голову, а не тупо копировать.... |
|||
40
neo-55555
23.01.15
✎
10:35
|
Я просто впервые обработку пиши и многих вещей еще не знаю...
Посмотрите, пожалуйста, код Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ЗаказПокупателя | ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах | ГДЕ | ТоварыВРезервеНаСкладах.ЗаказПокупателя = Документы.ЗаказПокупателя.ПустаяСсылка"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); НаборЗаписей = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей(); Пока Выборка.Следующий()Цикл НаборЗаписей.Отбор.Регистратор.УСТАНОВИТЬ(Выборка.Регистратор); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); КонецЦикла; КонецПроцедуры |
|||
41
neo-55555
23.01.15
✎
10:36
|
Теперь ошибка выходит:
{Форма.Форма.Форма(12)}: Ошибка при вызове метода контекста (Выполнить) Результат = Запрос.Выполнить(); по причине: {(6, 5)}: Поле не найдено "ТоварыВРезервеНаСкладах.ЗаказПокупателя" <<?>>ТоварыВРезервеНаСкладах.ЗаказПокупателя = Документы.ЗаказПокупателя.ПустаяСсылка |
|||
42
ДенисЧ
23.01.15
✎
10:36
|
| ТоварыВРезервеНаСкладах.ЗаказПокупателя = ЗНАЧЕНИЕ(Документы.ЗаказПокупателя.ПустаяСсылка)";
|
|||
43
neo-55555
23.01.15
✎
10:38
|
Теперь ошибка:
{Форма.Форма.Форма(12)}: Ошибка при вызове метода контекста (Выполнить) Результат = Запрос.Выполнить(); по причине: {(6, 56)}: Неверные параметры "Документы.ЗаказПокупателя.ПустаяСсылка" ТоварыВРезервеНаСкладах.ЗаказПокупателя = ЗНАЧЕНИЕ(<<?>>Документы.ЗаказПокупателя.ПустаяСсылка) |
|||
44
Шапокляк
23.01.15
✎
10:40
|
Документ.ЗаказПокупателя.ПустаяСсылка
|
|||
45
neo-55555
23.01.15
✎
10:48
|
Люди добрые, помогите, у кого есть время
|
|||
46
ДенисЧ
23.01.15
✎
10:50
|
В программе документЫ, в запросе Документ.
|
|||
47
neo-55555
23.01.15
✎
11:02
|
Почему он ругается на Результат = Запрос.Выполнить();?
{Форма.Форма.Форма(12)}: Ошибка при вызове метода контекста (Выполнить) Результат = Запрос.Выполнить(); по причине: {(6, 5)}: Поле не найдено "ТоварыВРезервеНаСкладах.ЗаказПокупателя" <<?>>ТоварыВРезервеНаСкладах.ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка) |
|||
48
ДенисЧ
23.01.15
✎
11:05
|
Нету в регистре такого поля...
|
|||
49
neo-55555
23.01.15
✎
11:15
|
Мне нужно в столбце Документ Резерва, отобрать пустые значения и удалить их.
Что тогда вбить, чтобы он увидел этот столбец |
|||
50
Зачем1С
23.01.15
✎
11:26
|
Посмотри свой регистр и напиши запрос правильно
|
|||
51
Зачем1С
23.01.15
✎
11:30
|
Нет у тебя в регистр "ЗаказПокупателя"
|
|||
52
ДенисЧ
23.01.15
✎
11:31
|
(49) Я бы предложил вбить кол в грудь запросописателя... Но это как-то не хорошо...
Может, позовёшь того, кто хоть что-то понимает в 1с? |
|||
53
neo-55555
23.01.15
✎
11:34
|
Никого нет, к сожалению. Приходиться самому изучать
|
|||
54
ДенисЧ
23.01.15
✎
11:35
|
(53) Тогда придётся включать голову (ну, если есть, что включать) и думать. Смотреть на структуру данных, например...
|
|||
55
Зачем1С
23.01.15
✎
11:38
|
Пользуйся конструктором запроса
|
|||
56
neo-55555
23.01.15
✎
12:14
|
Всем спасибо большое спасибо за советы. Буду думать головой :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |