Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Периодические проблемы при заполении реквизитов док. по умолчанию.          
george_smith Подменю пользователя
сообщение 13.12.22, 13:41
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 24
Спасибо сказали: 0 раз
Рейтинг: 0

Конфигурация: Управление небольшой фирмой для Украины, редакция 1.6 (1.6.7.1)
Платформа: 8.3 (8.3.17.1091)

Здравствуйте, в конфигурации, указанной выше создал документ "Форма 100". Данный документ заполняется
данными, прописаными по умолчанию, процедуре ПриСозданииНаСервере:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Объект.Ссылка.Пустая() Тогда
        Объект.Состояние = Справочники.СостоянияЗаказовПоставщикам.НайтиПоНаименованию("В работе");
        Объект.Организация = Справочники.Организации.ОрганизацияПоУмолчанию();
        Объект.Автор = ПараметрыСеанса.ТекущийПользователь;         
    КонецЕсли;
    
    ПодборНоменклатурыВДокументах.НазначитьФормуПодбора(ПараметрыОткрытияПодбора, Объект.Ссылка.Метаданные().Имя, "ВПроизводстве");
    
    ЭтаФорма.КолСтрокВПроизводстве = Объект.ВПроизводстве.Количество();
    ЭтаФорма.КолСтрокНаСкладеУПоставщика = Объект.НаСкладеУПоставщика.Количество();
    
КонецПроцедуры


С работой этой процедуры проблем нету. Проблемы переодичеси происходят когда при выборе поставщика нужно подтянуть договор по - умолчанию.

НаКлиенте
Процедура ПоставщикПриИзменении(Элемент)
            Если ЗначениеЗаполнено(Объект.Поставщик)
            И ЗначениеЗаполнено(Объект.Поставщик.ДоговорПоУмолчанию) Тогда
            Объект.Договор = Объект.Поставщик.ДоговорПоУмолчанию;
        КонецЕсли;
КонецПроцедуры


Периодически возникает сообщение "Поле объекта не обнаружено" (ДоговорПоУмолчанию), хотя данный договор существует. Такое получается
1 из 30 раз, приблизительно, когда данный код не срабатывает. То, что договор есть для выбраного поставщика это 100%.

Такое же периодически происходит с процедурой:

СтрокаТабличнойЧасти.ЕдиницаИзмерения = ПолучитьЕденицуИзмерения(СтрокаТабличнойЧасти.Номенклатура.ЕдиницаИзмерения.Код);


&НаСервереБезКонтекста 
Функция ПолучитьЕденицуИзмерения(КодЕдененицыИзмерения)
     ЕдИзм = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(КодЕдененицыИзмерения);
    Возврат ЕдИзм;    
КонецФункции


Появляется ошибка "Поле объекта не обнаружено "ЕдиницаИзмерения".

Еще заметил, что данные ошибки появляются при первом входе, потом когда перезайти в 1С все снова работает нормально, но потом снова периодически
возникают данные ошибки.

Заранее спасибо!






Vofka Подменю пользователя
сообщение 13.12.22, 14:03
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

НаКлиенте так обращаться нельзя:
Объект.Поставщик.ДоговорПоУмолчанию

Это надо делать НаСервере (или НаСервереБезКонтекста).

Цитата
Появляется ошибка "Поле объекта не обнаружено "ЕдиницаИзмерения".

Наверное, у вас что-то не то в переменной СтрокаТабличнойЧасти. Телепатирую, что там элемент формы находится, а не строка табличной части.

Сообщение отредактировал Vofka - 13.12.22, 14:03

Спасибо сказали: george_smith,

george_smith Подменю пользователя
сообщение 13.12.22, 14:12
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 24
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Vofka @ 13.12.22, 14:03) *
Наверное, у вас что-то не то в переменной СтрокаТабличнойЧасти. Телепатирую, что там элемент формы находится, а не строка табличной части.


СтрокаТабличнойЧасти это ТД "ДанныеФормыЭлементКоллекции", разве не правильно?

СтрокаТабличнойЧасти = Элементы.ВПроизводстве.ТекущиеДанные;


Как лучше сделать?

Vofka Подменю пользователя
сообщение 13.12.22, 14:23
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата(george_smith @ 13.12.22, 14:12) *
Как лучше сделать?

Точно сейчас не помню, но может так:
СтрокаТабличнойЧасти = Элементы.ВПроизводстве.ТекущаяСтрока;

Спасибо сказали: george_smith,

george_smith Подменю пользователя
сообщение 13.12.22, 14:32
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 24
Спасибо сказали: 0 раз
Рейтинг: 0

Vofka @ Сегодня, 14:23 * ,

Нет, ТекущаяСтрока - это индекс строки в Таблице Формы.

Vofka Подменю пользователя
сообщение 13.12.22, 14:51
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

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

Спасибо сказали: george_smith,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 17:57
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!