Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
22 Сен 2017, 05:25
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Не выходит правильно получить объект  (Прочитано 925 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Рексарыч

  • *
  • Сообщений: 10
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-12-19
  • Сайт: 
Добрый день, товарищи!

Конфигурация - "1С: ERP УП 2.0".

Первоначальная задача: во всей графе "Бригада" добавить нужное значение, которое выбрано.

Уже дня три рабочих пытаюсь сделать простую (как предполагаю) вещь - записать конкретное значение в нужное поле табличной части.

Проблема заключается в том, что у меня выходит получать объект только у ссылки, что, как понимаю, логично. Только вот реквизит (поле?) "Бригада" у ссылки отсутствует.

В запросе я вывожу поля: "Ссылка.ссылка", "Ссылка", "Бригада", "Бригада.Ссылка" для "Документ.МаршрутныйЛистПроизводства.Трудозатраты" по конкретному маршрутному листу.

Пробовал и с помощью создания в коде табличной части, и с помощью получения объекта - ничего не вышло.

Пример кода, с которым вожусь, но никак не выходит исправить:

	Пока МЛСПустымиБригадами.Следующий() Цикл

сообщить(2);
Бригада = МЛСПустымиБригадами.[что-то надо вставить].ПолучитьОбъект();
сообщить(3);
Бригада.Трудозатраты.Бригада.Ссылка = НазваниеБригады;
сообщить(4);
Бригада.Записать();

КонецЦикла;
.

Прошу подсказать, где мне нужно копать.


Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С

Оффлайн Kironten

  • *****
  • Сообщений: 867
  • РЕПУТАЦИЯ: 181
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
сообщить(2);    
            Бригада = Справочники.Бригады.ПустаяСсылка();
Ну или какой там у вас тип бригады

Оффлайн Рексарыч

  • *
  • Сообщений: 10
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-12-19
  • Сайт: 
Kironten, ссылка на бригаду у меня содержится в "НазваниеБригады". Её получаю из формы, так же как и ссылку на нужный маршрутный лист ("НазваниеМЛ"). В "Проведен" (тип данных - булево значение) содержится "Нет" (по-сути - 0), что бы не были затронуты документы, которое проведены, но по каким-то причинам бригады там не заполнены. Проблема в том, что извлеча все строчки из одного документа по трудозатратам маршрутного листа, у меня не выходит присвоить каждому полю бригады нужное значение (поскольку объект правильно выбрать не получается), ссылка на которое хранится в "НазваниеБригады". Проверка же на пустую ссылку по бригадам у меня есть в запроса.

Возможно мне нужно было показать весь важный код, что и делаю :):
	//лёгкая защита от невнимательности ;)
Если Не ЗначениеЗаполнено(НазваниеМЛ) или Не ЗначениеЗаполнено(НазваниеБригады) тогда
    Сообщить("Значение не заполнено. Обработка невозможна.");
    Возврат;
КонецЕсли;

МЛСПустымиБригадами = новый запрос("
|Выбрать //первые 10
|Ссылка,
|Ссылка.Ссылка,
|Ссылка.Номер,
|НомерСтроки,
|Бригада,
|Бригада.Ссылка
|Из
|Документ.МаршрутныйЛистПроизводства.Трудозатраты
|Где
|Ссылка.Проведен = &Проведен и Бригада.Ссылка есть NULL и Ссылка.Ссылка=&НазваниеМЛ");

МЛСПустымиБригадами.УстановитьПараметр("НазваниеМЛ", НазваниеМЛ);
МЛСПустымиБригадами.УстановитьПараметр("Проведен", Проведен);

МЛСПустымиБригадами = МЛСПустымиБригадами.Выполнить().Выбрать();

//осуществляю пробежку по всем отобранным объектам
Пока МЛСПустымиБригадами.Следующий() Цикл

сообщить(2);сообщить(МЛСПустымиБригадами.Номер);сообщить(НазваниеМЛ);
Бригада = МЛСПустымиБригадами.[что-то надо вставить].ПолучитьОбъект();
сообщить(3);
                //будь объект правильно определён в строчке "Бригада = МЛСПустымиБригадами.[что-то надо вставить].ПолучитьОбъект();", то и тут уже смог бы правильно написать код
Бригада.Трудозатраты.Бригада.Ссылка = НазваниеБригады;
сообщить(4);
Бригада.Записать();

КонецЦикла;
.
Добавлено: 19 Ноя 2015, 08:35

Товарищи, сейчас постарался переделать код. Теперь идёт извлечение из табличной части документа нужной мне (скажем так) "строки". Первоначальная ошибка, что команду "ПолучитьОбъект()" нельзя использовать, убралась. Теперь выдаёт: "Элемент не выбран!". Но ведь я же указал, где находится объект (или как там правильно в терминологии). Прошу, если есть возможность, ткнуть меня носом туда, где я ошибся.

Вот переписанный участок кода:
	Пока МЛСПустымиБригадами.Следующий() Цикл

сообщить(2);
Бригада = МЛСПустымиБригадами.Ссылка.Ссылка.Трудозатраты.Найти(МЛСПустымиБригадами.НомерСтроки); //.Найти(МЛСПустымиБригадами.Бригада.Ссылка);

//Сообщить("" + Бригада + "-" + ТипЗнч(Бригада) + "");
//
//Для Каждого Ссылка Из Бригада Цикл
// Сообщить("" + Ссылка + " " + ТипЗнч(Ссылка) + "");
//КонецЦикла;

сообщить(3.5);
БригадаСсылка=Бригада.Бригада.Ссылка.ПолучитьОбъект();

сообщить(3.75);
//Бригада.Бригада.Ссылка = НазваниеБригады;
сообщить(4);
Бригада.Записать();

КонецЦикла;
.
Добавлено: 19 Ноя 2015, 15:39

Всё. Решил задачу. Нужно было функцию "ПолучитьОбъект()" использовать для всего найденного документа, а не для одной строчки табличной части.

Решение:
	Пока МЛСПустымиБригадами.Следующий() Цикл

сообщить(2);
БригадаОбъект = МЛСПустымиБригадами.Ссылка.Ссылка.ПолучитьОбъект(); //Трудозатраты.Найти(МЛСПустымиБригадами.НомерСтроки); //.Найти(МЛСПустымиБригадами.Бригада.Ссылка);

//Сообщить("" + Бригада + "-" + ТипЗнч(Бригада) + "");
//
//Для Каждого Ссылка Из Бригада Цикл
// Сообщить("" + Ссылка + " " + ТипЗнч(Ссылка) + "");
//КонецЦикла;

сообщить(3.5);
БригадаСсылка=БригадаОбъект.Трудозатраты.Найти(МЛСПустымиБригадами.НомерСтроки);

сообщить(3.75);
БригадаСсылка.Бригада = НазваниеБригады;

сообщить(4);
БригадаОбъект.Записать();

КонецЦикла;
.

Тему можно закрывать.

Последний раз редактировалось: Рексарыч; 19 Ноя 2015, 15:39. Причина: Объединение сообщений


Теги:
 

Получить номер недели в месяце в запросе [номер недели]

Автор MuI_I_IkaРаздел Алгоритмы

Ответов: 0
Просмотров: 3714
Последний ответ 15 Июл 2015, 18:24
от MuI_I_Ika
как получить значение реквизита "Код" в обработке "ПодборНоменклатуры" в УТ10.3

Автор JalibРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 939
Последний ответ 02 Дек 2016, 12:58
от Jalib
Как правильно настроить регламентные "Обновление индекса ППД" и "Слияние индекса ППД"

Автор bkmz_1_Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 3323
Последний ответ 13 Окт 2016, 09:14
от MuI_I_Ika
Получить полный HTTP код с сервера, Именно полный!

Автор Shining ninjaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 2041
Последний ответ 12 Авг 2011, 15:23
от Shining ninja
Как получить значения элементов формы "ПриИзменении"?

Автор OptyРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 7
Просмотров: 6846
Последний ответ 07 Май 2015, 14:38
от Opty

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
162 Сообщений
alex0402
85 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
81 Сообщений
Golickoff Golickoff
32 Сообщений
Kironten
29 Сообщений
ilyay ilyay
27 Сообщений
AIFrame
26 Сообщений
BuhRust
25 Сообщений
AsadRoman
22 Сообщений
Варвар
20 Сообщений

* Кто онлайн

  • Точка Гостей: 281
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal