Помощь - Поиск - Пользователи - Календарь
Полная версия: .ВыбратьСтроки(); .ПолучитьСтроку()
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 7.7" > (7.7) Конфигурирование на платформе "1С:Предприятие 7.7"
Log1c
Есть 2 вида документов: "ПриходНаСклад", "РасходСоСклада".
Надо получить все документы кот прошли через склад(о них были записи в этих двух документах("СырьеРулон" - одинаковое значение)).
Собственно всё понятно и реализация легка, но... не работает, пришлось поискать вручную, и ввести доп. условие (номер рулона, кот. я точно знаю что должен попасть в сообщение) и заработало, как так?(пояснения ниже).

Код
ДкмПрих=СоздатьОбъект("Документ.ПриходНаСклад");     
ДкмПрих.ВыбратьДокументы(Дата1, Дата2);
ДкмРасх=СоздатьОбъект("Документ.РасходСоСклада");
ДкмРасх.ВыбратьДокументы(Дата1, Дата2);

Пока ДкмПрих.ПолучитьДокумент() = 1 Цикл
Если (ДкмПрих.Склад.ВидСклада=Перечисление.ВидыСкладов.Сырье) Тогда
ДкмПрих.ВыбратьСтроки();
Пока ДкмПрих.ПолучитьСтроку() = 1 Цикл

//Если(Строка(СокрЛП(ДкмПрих.СырьеРулон))="3614") Тогда

Пока ДкмРасх.ПолучитьДокумент() = 1 Цикл
Если ДкмРасх.Склад.ВидСклада=Перечисление.ВидыСкладов.Сырье Тогда
ДкмРасх.ВыбратьСтроки();
Пока ДкмРасх.ПолучитьСтроку() = 1 Цикл
Если (ДкмРасх.Радиус2=0) И (ДкмПрих.Товар=ДкмРасх.Товар) И (ДкмПрих.СырьеРулон=ДкмРасх.СырьеРулон) Тогда
Сообщить(ДкмПрих.СырьеРулон);

КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;

//КонецЕсли;

КонецЦикла;
КонецЕсли;
КонецЦикла;


Если раскоментировать коментарии (тоесть ввести доп. условие) сообщение будет выдаватся, если оставить так как есть, сообщение не выдаётся(вообще никакое).

Сообственно вопрос как это возможно? с дополнительным условием работает, а так нет???
WaRDeR
Проблема в том, что циклы вложены не правильно.
Вложеный цикл должен каждый раз начинаться заново, т.е.
ДкмРасх.ВыбратьДокументы(Дата1, Дата2);
вместо первого комментария.
А вообще в таких случаях надо использовать запросы.
Log1c
Цитата(WaRDeR @ 14.8.2007, 11:04) *

Проблема в том, что циклы вложены не правильно.
Вложеный цикл должен каждый раз начинаться заново, т.е.
ДкмРасх.ВыбратьДокументы(Дата1, Дата2);
вместо первого комментария.
А вообще в таких случаях надо использовать запросы.


luxhello.gif Да, действительно, большое спс, я уже чуть ли не головой об стенку бился, думал как же так, ставишь выбрать все документы с условием - не выбираются, добавляешь ещё одно условие - выбираются.
Log1c
Цитата(WaRDeR @ 14.8.2007, 11:04) *

в таких случаях надо использовать запросы.


Ну это уже вторая проблема, у мну не получается строить запросы к регистрам, например:

Код
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса=
"//{{ЗАПРОС(Сформировать)
|Фирма= Регистр.ОстаткиТоваров.Фирма;
|Товар= Регистр.ОстаткиТоваров.Товар;
|Склад= Регистр.ОстаткиТоваров.Склад;
|Группировка Товар без групп;
|"//}}ЗАПРОС;

Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
Сообщить("Неправельно построена структура запроса");
Возврат;
КонецЕсли;

Пока Запрос.Группировка(1) = 1 Цикл //не выполняется
Сообщить("Группировка 1 выполнилась");
КонецЦикла;


Группировка не выполняется =(. Ко всем другим возможным метаданным получается делать запросы а к регистрам нет.

Уже разобрался , спс "Trigg" оказывается
Запрос к регистру НЕ работает без функций.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2008 Invision Power Services, Inc.