Получение документа по номеру и удаление строки с индексом 0. "Программирование для начинающих"
Проверьте пожалуйста моё решение.
Задание 3.50
Получите документ за 2 сентября 2022 г. и удалите в нём первый урок. Для этого
самостоятельно найдите в синтакс-помощнике метод, который позволяет найти
документ по номеру. Обработайте ситуацию, что документа с таким номером
может и не быть в базе.
Перед выполнением запомните, какой урок был первым, чтобы потом проверить.
После проверки в тексте программы измените номер документа на несуществую-
щий. Проверьте, как работает ваша программа в случае, когда искомый документ
отсутствует.
Подсказка 1. Чтобы определить, является ли ссылка на документ пустой, у типа
ДокументСсылка.<Имя документа> существует метод Пустая().
Подсказка 2. Чтобы, находясь на сервере, сообщить что-нибудь клиенту, исполь-
зуйте объект СообщениеПользователю. Самостоятельно найдите его описание в
синтакс-помощнике. Вам понадобится создать этот объект, заполнить свойство
Текст и выполнить метод Сообщить().
Задание 3.50
Получите документ за 2 сентября 2022 г. и удалите в нём первый урок. Для этого
самостоятельно найдите в синтакс-помощнике метод, который позволяет найти
документ по номеру. Обработайте ситуацию, что документа с таким номером
может и не быть в базе.
Перед выполнением запомните, какой урок был первым, чтобы потом проверить.
После проверки в тексте программы измените номер документа на несуществую-
щий. Проверьте, как работает ваша программа в случае, когда искомый документ
отсутствует.
Подсказка 1. Чтобы определить, является ли ссылка на документ пустой, у типа
ДокументСсылка.<Имя документа> существует метод Пустая().
Подсказка 2. Чтобы, находясь на сервере, сообщить что-нибудь клиенту, исполь-
зуйте объект СообщениеПользователю. Самостоятельно найдите его описание в
синтакс-помощнике. Вам понадобится создать этот объект, заполнить свойство
Текст и выполнить метод Сообщить().
Процедура ПолучениеИУдалениеПеровогоУрока2Сентября() Экспорт
// Нахожу с помощью метода НайтиПоНомеру, ДокументМенеджер, возвращаю Тип: ДокументСсылка
ВтороеСентября = Документы.УчебныйДень.НайтиПоНомеру("20220902");
Если ВтороеСентября.Пустая() Тогда // Проверяю есть ли такой документ в базе, если нет - сообщаю об этом
СмсОбОтсутствииДока = Новый СообщениеПользователю();
СмсОбОтсутствииДока.Текст = "Документ от 2 сентября 2022 года не найден.";
СмсОбОтсутствииДока.Сообщить();
Иначе
ДокументОбъект = ВтороеСентября.ПолучитьОбъект(); //Получаю ДокументОбъект
// Получаю табличную часть документа
ТабличнаяЧасть = ДокументОбъект.Уроки;
// Обработчик ошибки. Если в документе нет строк сообщим об этом
Если ТабличнаяЧасть.Количество() = 0 Или ТабличнаяЧасть.Количество() = Неопределено Тогда
СмсОбОтсутствииСтрок = Новый СообщениеПользователю();
СмсОбОтсутствииСтрок.Текст = "В документе 20220902 нет строк, он не заполнен.";
СмсОбОтсутствииСтрок.Сообщить();
Возврат;
Иначе
ТабличнаяЧасть.Удалить(0); // Удаляю первый урок
КонецЕсли;
ДокументОбъект.Записать();
КонецЕсли;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
Дневник_Задание_3,50.dt
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) нормально, только:
ТабличнаяЧасть.Количество() не может быть Неопределено. Почаще обращайтесь к СП (Синтакс-помощник). Смотрите возвращаемый тип.
В данном случае там может быть только число.
Работать код будет, но проверка излишняя.
Если ТабличнаяЧасть.Количество() = 0 Или ТабличнаяЧасть.Количество() = Неопределено Тогда
ТабличнаяЧасть.Количество() не может быть Неопределено. Почаще обращайтесь к СП (Синтакс-помощник). Смотрите возвращаемый тип.
В данном случае там может быть только число.
Работать код будет, но проверка излишняя.
Добрый день!
Внимательно читайте документацию по 1С, это Вам поможет сейчас и в дальнейшем.
Функция НайтиПоНомеру() предполагает необязательность второго параметра ДатаИнтервала., но обязательность первого - НомерДокумента. Код, который Вы написали, будет искать документ за номером "20220902"
Внимательно читайте документацию по 1С, это Вам поможет сейчас и в дальнейшем.
Функция НайтиПоНомеру() предполагает необязательность второго параметра ДатаИнтервала., но обязательность первого - НомерДокумента. Код, который Вы написали, будет искать документ за номером "20220902"
(6)
В этом случае возвращается тип ДокументВыборка и потом я начал думать как из ДокументВыборки перейти к типу ДокументСсылка, чтобы получить доступ к его методу Пустой(), начал перебирать выборку с помощью Пока Цикл, после задумался, а нельзя ли напрямую обратиться к документу ну и нашёл метод НайтиПоНомеру().
ДатаВыборки = Дата("20220902");
Документы.Учебный День.Выбрать(НачалоДня(ДатаВыборки), КонецДня(ДатаВыборки));
В этом случае возвращается тип ДокументВыборка и потом я начал думать как из ДокументВыборки перейти к типу ДокументСсылка, чтобы получить доступ к его методу Пустой(), начал перебирать выборку с помощью Пока Цикл, после задумался, а нельзя ли напрямую обратиться к документу ну и нашёл метод НайтиПоНомеру().
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот