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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн vitasw

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

Оффлайн Kironten

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

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

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 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
Просмотров: 2335
Последний ответ 15 Июл 2015, 18:24
от MuI_I_Ika
как получить значение реквизита "Код" в обработке "ПодборНоменклатуры" в УТ10.3

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
159 Сообщений
alex0402
63 Сообщений
MuI_I_Ika MuI_I_Ika
47 Сообщений
crow1983
35 Сообщений
LexaK
32 Сообщений
alexandr_ll
30 Сообщений
sertak sertak
25 Сообщений
Vzonder
22 Сообщений
BuhRust
17 Сообщений
дфтын дфтын
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal