0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
1

Проблема с созданием документа(

19.05.2010, 19:30. Показов 18952. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Конфигурация 7.7 С помощью обработки нужно создать документ (в конфигураторе указан Журнал для этого документа) при этом проверяя, есть ли уже такой документ по определенным реквизитам СравнФизЛицо, СравнФакультет, СравнУчГруппа . Если есть, то вывести сообщение и продолжить цикл дальше. Документ НЕ содержит табличной части. Данный код содержится внутри цикла Если , т.е. Если мы нашли не нашли человека, то добавляем его в справочник и создаем сразу документ Зачисление по данному человеку. Часть кода приведена снизу:

Код
Док = СоздатьОбъект("Документ.Зачисление");
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент()=1 Цикл
Если (Док.ФизЛицо = СравнФизЛицо) и (Док.Факультет = СравнФакультет) Тогда
Если (Док.УчГруппа.Выбран()=1) и (Док.УчГруппа = СравнУчГруппа) Тогда
Если Док.Проведен()=1 Тогда
Сообщить("Документ уже есть и проведен!!!");
Продолжить;
Иначе
//изменяем данные
ЗаполнениеРеквизитовДокумента(Док, Табл, Табл2); // процедура для заполнения реквизитов документа и его записи
Сообщить("Документ изменили!!! Документ без Группы");
КонецЕсли;
Иначе
Если Док.Проведен()=1 Тогда
Сообщить("Документ уже есть и проведен!!!");
Продолжить;
Иначе
//изменяем данные
ЗаполнениеРеквизитовДокумента(Док, Табл, Табл2);
КонецЕсли;
Сообщить("Документ изменили2!!! Документ с Группой");
КонецЕсли;
Иначе
//создаем документ
Док.Новый();
ЗаполнениеРеквизитовДокумента(Док, Табл, Табл2);
Сообщить("Документ записали!!!");
КонецЕсли;
КонецЦикла;
Изначально в журнале я создала один документ. Проблема в том, что в отладчике Док.ВыбратьДокументы()=1, Док.ПолучитьДокумент()=1, а в сам цикл даже не заходит. ставлю точку останова на КонецЦикла;, так даже не становиться и туда, а сразу идет на КонецЕсли (внешний цикл Если). Подскажите пожалуйста, в чем может быть проблема?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2010, 19:30
Ответы с готовыми решениями:

Подскажите с созданием документа!
Здравствуйте ! подскажите пожалуйста Вопрос вот чем, я создаю документ, далее как обычно...

Проблема с созданием новой роли в Бухгалтерии 8.1
Никак не могу разобраться почему не получается создать роль. 1С Предприятие упорно не хочет...

Проблема с созданием вордового документа
Был проект - в котором в определенном месте создавался вордовый документ. Винда накрылась, ее...

Проблема с созданием классов
Проблема с создованием классов в IDE такая: Создал классы в visual добавить->класс Все отлично...

8
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
19.05.2010, 19:47 2
А зачем ставить в конце цикла? Поставьте в условие, или в запись нового документа
0
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
19.05.2010, 19:56 3
Цитата Сообщение от GorlanovMax
А зачем ставить в конце цикла? Поставьте в условие, или в запись нового документа
Я пробовала, оно вообще сразу после Пока Док.ПолучитьДокумент()=1 Цикл выбивает, даже внутрь не заходит.
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
19.05.2010, 20:06 4
Проще после

Пока Док.ПолучитьДокумент()=1 Цикл

Вставить
Сообщить(Док);
0
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
19.05.2010, 20:41 5
Цитата Сообщение от vbs
Проще после

Пока Док.ПолучитьДокумент()=1 Цикл

Вставить
Сообщить(Док);
Записывает только один документ, а дальше выбивает ошибку:
Пока Док.ПолучитьДокумент()=1 Цикл
{Обработка.ЗагрузкаФЛ.Форма.Модуль(399)}: Не выбран документ!
В журнале уже существует два документа.
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
19.05.2010, 22:28 6
Попробуй
Док.ВыбратьДокументы(Дата1,Дата2);

И еще - первый документ найден, что с ним произошло ?

А также можно сделать 2 одинаковых объекта
Док = СоздатьОбъект("Документ.Зачисление");
Док1 = СоздатьОбъект("Документ.Зачисление");
Для Док1 создавать новый и корректировать найденный (Док1 = Док.ТекущийДокумент())
0
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
20.05.2010, 00:57 7
Цитата Сообщение от vbs
А также можно сделать 2 одинаковых объекта
Да в этом-то и проблема. Нельзя одним "Док" перебирать и им же создавать. Аналогия такова: шел человек по лесенке и считал ступеньки. Вдруг его сбросили на землю. Потом командуют: "Перейти на следующую." А он чешет репу. Потому что в голове сбился счетчик: на какой ступеньке от находился? Не сильно почитал, как у Вас происходит. Должно после первого созданного документа слетать.



Для Док1 создавать новый и корректировать найденный (Док1 = Док.ТекущийДокумент())
Простим товарищу - торопился. 1) Поборники красоты рекомендуют так безлико не называть переменные. Хотя бы "ДокВыб", "ДокНов".
2) А вот для корректировки использовать "Док" можно и нужно. Док задержится на той-же ступеньке.
Если решим использовать ДокНов и для корректировки то вот так: ДокНов.НайтиДокумент(ДокВыб); Повторяюсь, можно использовать ДокВыб без всякой подготовки.


Все бы ничего. Да есть еще одна беда. Во всем тексте нет команды Записать()
0
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
20.05.2010, 05:25 8
ЗаполнениеРеквизитовДокумента(Док, Табл, Табл2); - если процедура или функция выглядит так:
Процедура ЗаполнениеРеквизитовДокумента(Док, ХХХ, ХХХ)
......
КонецПроцедуры

Поменяй переменную с Док на Док1 допустим
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
20.05.2010, 13:15 9
Цитата Сообщение от Дайнеко
ДокНов.НайтиДокумент(ДокВыб);
вот-вот, именно это я и имел в виду

А запись у нее, видимо, в процедуре заполнения реквизитов.

Даты стоит использовать при выборке с тем, чтобы процесс не умер (новый документ, не дай Бог, снова попадет в выборку и т.д.), да и новому документу
надо присваивать дату вне диапазона
0
20.05.2010, 13:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2010, 13:15
Помогаю со студенческими работами здесь

Проблема с созданием цикла
Всем доброго времени суток. Прошу помощи у форумчан по следующему вопросу. Есть входные параметры...

Проблема с созданием экземпляра БД
Стоит Oracle 7.3 и windows XP имеется в наличии 1) холодный бекап базы 2) init.ora ...

Проблема с созданием запроса
Здравствуйте! Имеется база данных, в таблице есть значения марка материала и гост, ...

Проблема с созданием дистрибутива.
Я создала дистрибутив при помощи InstallShield'а на компьютере,где стоит winXP и Visual Studio...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru