|
|
|
Прошу помощи с кодом выборки организации craxx, Telcher, Fish, 1cVandal, fserg84, Табуретко, Gucci76, Волшебник, Neo58, Hawk_1c, Ёпрст, Homer, orakool, Доминошник, Aleks_0684, ОператорПК, AAA, nick86, 2S, Мультук, Radion, H A D G E H O G s, Kigo_Kigo, Климов Сергей, Kongo2019, RomanYS, shuhard, ndrv, Krendel, Страждущий, maxab72, comp2006, Alex33, Жеглофф, Gennady, piter3, Джордж1, Fregat, ads55, ЕRPe, Хряк, mmg, arsik, ДенисСмирнов, okmail, DeeK, DemonShinji2, banco, Franchiser, reutov, Builder, roman383, eses, АгентБезопаснойНацио, Rawasert, Niveus, Bigbro, Ногаминебить, Somebody, Ненавижу 1С, МаленькийВопросик, uno-group, takefive, El_Duke, Kobol, formista2000, hunter76, Lepexa207, Гипервизор, maxar, paramedic, zenik, Amra, Михаил Козлов, JohnGilbert, Vstur, Rovan, Amfiaray
| ☑ | ||
|---|---|---|---|---|
|
0
Aleks_0684
15.12.25
✎
10:01
|
Добрый день. Такой вопрос в 1с Бухгалтерия заведены 2 организации. У каждой свой префикс. Есть справочник авансовых отчетов, где нумерация сбилась, необходимо установить правильную нумерацию.
Использую такой код: начатьтранзакцию(); Выборка = Документы.АвансовыйОтчет.Выбрать(Дата(2025,1,1),ТекущаяДата(),,"Дата"); Номер = 1; Пока Выборка.Следующий() Цикл Сообщить(Выборка); Док = Выборка.ПолучитьОбъект(); Док.Номер = "08zv-"+Формат(Номер, "ЧЦ=6; ЧВН=; ЧГ=0"); Док.Комментарий ="#Номер изменен"; Док.Записать(); Сообщить(Док.Номер); Номер = Номер+1; КонецЦикла; зафиксироватьтранзакцию(); Он переименовывает все документы авансового отчета, соответственно изменяя префикс у обеих организаций. Как мне сделать что б данная обработка затрагивала только документы одной из организаций, при этом не трогая документы другой? |
|||
|
1
Aleks_0684
15.12.25
✎
10:02
|
Я так понимаю нужно добавить выборку по организации.
Выбор = Организация.Наименование=Организация1 Выдает синтаксическую ошибку что переменная не определена. |
|||
|
2
Табуретко
15.12.25
✎
10:04
|
а запросом религия не позволяет?
|
|||
|
3
Aleks_0684
15.12.25
✎
10:07
|
Мозгов у меня не хватает. Поэтому и прошу помощи.
|
|||
|
4
Волшебник
15.12.25
✎
10:09
|
Говнокод без лесенки
|
|||
|
5
AAA
15.12.25
✎
10:13
|
(3)Какие тут мозги нужны? В цикл вставляете условие Выборка.Организация. Либо в запрос, как тут правильно советовали. Непосредственно в выборке лучше не менять объект
Не Наименование у Организации сравнивать, а ссылку |
|||
|
6
Fish
гуру
15.12.25
✎
10:15
|
(1) Ну так почитай СП. У метода Выбрать() есть параметр "Отбор". Его и задавай.
|
|||
|
7
Волшебник
15.12.25
✎
10:16
|
(6) При этом реквизит должен быть проиндексирован
|
|||
|
8
Табуретко
15.12.25
✎
10:20
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | АвансовыйОтчет.Ссылка КАК Авансовый |ИЗ | Документ.АвансовыйОтчет КАК АвансовыйОтчет |ГДЕ | АвансовыйОтчет.Организация = &Организация | И АвансовыйОтчет.Дата >= &ВыбДата | |УПОРЯДОЧИТЬ ПО | АвансовыйОтчет.Дата"; Запрос.Параметры.Вставить("Организация",Справочники.Организации.НайтиПоНаименованию("ООО Рога и Копыта"); Запрос.Параметры.Вставить("ВыбДата", '20250101'); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Авансовый); //далее ваш код но я бы реквизиты отбора на форму повесил... |
|||
|
9
Ногаминебить
15.12.25
✎
10:31
|
(0) Просто чтоб разбавить общий хор.
Завести отдельный счетчик нумератора под каждую организацию, проверять какая в конкретном документе и его плюсовать. :) |
|||
|
10
Aleks_0684
15.12.25
✎
10:32
|
(8) Все равно меняет нумерацию и префикс сразу у обеих организаций
|
|||
|
11
Kigo_Kigo
15.12.25
✎
10:36
|
(10) А ты "ООО Рога и Копыта" ищешь? бгггг
|
|||
|
12
Aleks_0684
15.12.25
✎
10:38
|
Нет конечно. поставил наименование своей организации
|
|||
|
13
Fish
гуру
15.12.25
✎
10:45
|
(10) А у второй организации наименование отличается?
|
|||
|
14
Aleks_0684
15.12.25
✎
10:55
|
(13) Конечно. 2 разные организации с разным наименованием
|
|||
|
15
Табуретко
15.12.25
✎
10:57
|
(14) можно еще раз код в студию?
|
|||
|
16
Fish
гуру
15.12.25
✎
10:58
|
(14) Тогда не может быть такого. Показывай свой код.
|
|||
|
17
Aleks_0684
15.12.25
✎
11:01
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | АвансовыйОтчет.Ссылка КАК Авансовый |ИЗ | Документ.АвансовыйОтчет КАК АвансовыйОтчет |ГДЕ | АвансовыйОтчет.Организация = &Организация | И АвансовыйОтчет.Дата >= &ВыбДата | |УПОРЯДОЧИТЬ ПО | АвансовыйОтчет.Дата"; Запрос.Параметры.Вставить("Организация",Справочники.Организации.НайтиПоНаименованию("Восток")); Запрос.Параметры.Вставить("ВыбДата", '20250101'); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Авансовый); начатьтранзакцию(); Выборка = Документы.АвансовыйОтчет.Выбрать(Дата(2025,1,1),ТекущаяДата(),,"Дата"); Номер = 1; Пока Выборка.Следующий() Цикл Сообщить(Выборка); Док = Выборка.ПолучитьОбъект(); Док.Номер = "08zv-"+Формат(Номер, "ЧЦ=6; ЧВН=; ЧГ=0"); Док.Комментарий ="#Номер изменен"; Док.Записать(); Сообщить(Док.Номер); Номер = Номер+1; КонецЦикла; зафиксироватьтранзакцию(); КонецЦикла; |
|||
|
18
Kigo_Kigo
15.12.25
✎
11:02
|
(12) Дак встань отладчиком,проверь, ищется организация или там пусто?
|
|||
|
19
Табуретко
15.12.25
✎
11:05
|
Выборка = Документы.АвансовыйОтчет.Выбрать(Дата(2025,1,1),ТекущаяДата(),,"Дата");
свою выборку с циклом накой поставили? Вы точно программист? |
|||
|
20
Aleks_0684
15.12.25
✎
11:06
|
(8) Так написали же //Далее ваш код. Я кстати подумал еще зачем два раза выборка по дате...
|
|||
|
21
Табуретко
15.12.25
✎
11:08
|
транзакцию за цикл вынесите и замените
Док = Выборка.ПолучитьОбъект(); на Док = Выборка.Авансовый.ПолучитьОбъект(); |
|||
|
22
Aleks_0684
15.12.25
✎
11:10
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | АвансовыйОтчет.Ссылка КАК Авансовый |ИЗ | Документ.АвансовыйОтчет КАК АвансовыйОтчет |ГДЕ | АвансовыйОтчет.Организация = &Организация | И АвансовыйОтчет.Дата >= &ВыбДата | |УПОРЯДОЧИТЬ ПО | АвансовыйОтчет.Дата"; Запрос.Параметры.Вставить("Организация",Справочники.Организации.НайтиПоНаименованию("Восток")); Запрос.Параметры.Вставить("ВыбДата", '20250101'); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Авансовый); начатьтранзакцию(); Номер = 1; Пока Выборка.Следующий() Цикл Сообщить(Выборка); Док = Выборка.Авансовый.ПолучитьОбъект(); Док.Номер = "08zv-"+Формат(Номер, "ЧЦ=6; ЧВН=; ЧГ=0"); Док.Комментарий ="#Номер изменен"; Док.Записать(); Сообщить(Док.Номер); Номер = Номер+1; КонецЦикла; зафиксироватьтранзакцию(); КонецЦикла; Так? |
|||
|
23
Fish
гуру
15.12.25
✎
11:11
|
(20) Тщательнее надо думать.
|
|||
|
24
Fish
гуру
15.12.25
✎
11:11
|
(22) Нет, не так. Думай лучше.
|
|||
|
25
Aleks_0684
15.12.25
✎
11:11
|
начатьтранзакцию();
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | АвансовыйОтчет.Ссылка КАК Авансовый |ИЗ | Документ.АвансовыйОтчет КАК АвансовыйОтчет |ГДЕ | АвансовыйОтчет.Организация = &Организация | И АвансовыйОтчет.Дата >= &ВыбДата | |УПОРЯДОЧИТЬ ПО | АвансовыйОтчет.Дата"; Запрос.Параметры.Вставить("Организация",Справочники.Организации.НайтиПоНаименованию("Восток")); Запрос.Параметры.Вставить("ВыбДата", '20250101'); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Авансовый); Номер = 1; Пока Выборка.Следующий() Цикл Сообщить(Выборка); Док = Выборка.Авансовый.ПолучитьОбъект(); Док.Номер = "08zv-"+Формат(Номер, "ЧЦ=6; ЧВН=; ЧГ=0"); Док.Комментарий ="#Номер изменен"; Док.Записать(); Сообщить(Док.Номер); Номер = Номер+1; КонецЦикла; зафиксироватьтранзакцию(); КонецЦикла; |
|||
|
26
AAA
15.12.25
✎
11:12
|
(10)Возьмите себя в руки ) Напишите сначала просто запрос или выборку документов по требуемой организации. Это пара минут
Потом уже меняйте что либо |
|||
|
27
Табуретко
15.12.25
✎
11:12
|
(25)да как-же так? Может позовем специалиста?
|
|||
|
28
Fish
гуру
15.12.25
✎
11:17
|
(25) Убери цикл в цикле.
|
|||
|
29
Aleks_0684
15.12.25
✎
11:19
|
(27) Так я за этим сюда и обратился )
|
|||
|
30
Aleks_0684
15.12.25
✎
11:20
|
(28) начатьтранзакцию();
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | АвансовыйОтчет.Ссылка КАК Авансовый |ИЗ | Документ.АвансовыйОтчет КАК АвансовыйОтчет |ГДЕ | АвансовыйОтчет.Организация = &Организация | И АвансовыйОтчет.Дата >= &ВыбДата | |УПОРЯДОЧИТЬ ПО | АвансовыйОтчет.Дата"; Запрос.Параметры.Вставить("Организация",Справочники.Организации.НайтиПоНаименованию("Восток")); Запрос.Параметры.Вставить("ВыбДата", '20250101'); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Авансовый); Номер = 1; Сообщить(Выборка); Док = Выборка.Авансовый.ПолучитьОбъект(); Док.Номер = "08zv-"+Формат(Номер, "ЧЦ=6; ЧВН=; ЧГ=0"); Док.Комментарий ="#Номер изменен"; Док.Записать(); Сообщить(Док.Номер); Номер = Номер+1; КонецЦикла; зафиксироватьтранзакцию(); |
|||
|
31
Табуретко
15.12.25
✎
11:20
|
неправильно
|
|||
|
32
Fish
гуру
15.12.25
✎
11:21
|
(29) Так тебе уже все советы дали. Осталось немного голову включить. Или ты хочешь, чтобы тут за тебя твою работу сделали?
|
|||
|
33
Табуретко
15.12.25
✎
11:21
|
Номер = 1; куда нужно вынести?
|
|||
|
34
Aleks_0684
15.12.25
✎
11:28
|
(33) Я так понимаю за цикл?
|
|||
|
35
1cVandal
15.12.25
✎
11:34
|
(34) правильно
|
|||
|
36
Табуретко
15.12.25
✎
11:34
|
(34) а почему?
|
|||
|
37
1cVandal
15.12.25
✎
11:35
|
интересно он попадет на ошибку что номер не уникален....
|
|||
|
38
Aleks_0684
15.12.25
✎
11:36
|
Потому что так будет правильно )
Но при выполнении запроса 1с выдает ошибку теперь. |
|||
|
39
Волшебник
15.12.25
✎
11:40
|
(25) му-ха-ха
|
|||
|
40
1cVandal
15.12.25
✎
11:37
|
когда пишешь про ошибку, ты её текст сразу публикуй
|
|||
|
41
1cVandal
15.12.25
✎
11:41
|
в Сообщить(Выборка) падает?) убери нафиг
|
|||
|
42
Fish
гуру
15.12.25
✎
11:41
|
Какой-то миста-кодинг получается (по аналогии с вайб-кодингом).
Пациент думать не хочет, только даёт директивы, как ИИ. |
|||
|
43
1cVandal
15.12.25
✎
11:44
|
(42) все когда то начинали)
|
|||
|
44
Волшебник
15.12.25
✎
12:24
|
(42) ОНИ нас воспринимают как ботов.
wiki:Чужие_среди_нас |
|||
|
45
craxx
15.12.25
✎
12:40
|
(0) а Вы кем там в этой организации?
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |