в данной части кода появляется ошибка
ЭлементыПланировщика = ДокументРасписание.Элементы;
ЭлементыПланировщика.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаписьНаЗанятия.Оборудование,
| ЗаписьНаЗанятия.ДатаНачала КАК Начало,
| ЗаписьНаЗанятия.ДатаОкончания КАК Конец,
| ЗаписьНаЗанятия.Клиент КАК Наименование
|ИЗ
| РегистрСведений.ЗаписьНаЗанятия КАК ЗаписьНаЗанятия
|ГДЕ
| ЗаписьНаЗанятия.ДатаНачала >= &ДатаНачала
| И ЗаписьНаЗанятия.ДатаОкончания <= &ДатаОкончания";
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ВыборДаты));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ВыборДаты));
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Документ = Результат.Ссылка.ПолучитьОбъект();
СоответствиеЗначений = Новый Соответствие;
СоответствиеЗначений.Вставить("Оборудование", Документ.Оборудование.Наименование);
НовыйЭлемент = ЭлементыПланировщика.Добавить(Документ.Начало, Документ.Конец);
НовыйЭлемент.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответствиеЗначений);
НовыйЭлемент.Текст = Документ.Наименование;
КонецЦикла;
ПоказатьСсылка Ошибка чтения значения Запрос.Выполнить().Выбрать()
Результат.Следующий() {(1)}: Значение не является значением объектного типа (Следующий)
По теме из базы знаний
- Автоматическая установка себестоимости номенклатуры для конфигурации Розница 2.0 (2.1) +Бонус, исправляем ошибки при настройке расписания запуска для внешних обработок в Рознице 2.0
- Возможные ошибки ЗУП 3.0, обработка пересчета ФОТ
- Заполнение трудовой функции в штатном расписании (ERP 2.4, ERP 2.5, КА 2.4, КА 2.5, ЗУП)
- Расписание: объект и примеры применения
- 1С:Автоматизированное составление расписания
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Каждая ваша тема на форуме на сотню ответов. Вы лучше бы вначале книжку какую-нибудь по разработке почитали, например Радченко очень хорошо пишет. Я понимаю, что вы скорее всего работаете во франчайзи и у вас сроки, но за эти 3 дня, когда вы ждали, что за вас смогут решить другие люди, можно было изучить довольно много материала по теме. Капец, что это за франчайзи, если на доработки клиенту ставят человека, который мало знаком с кодингом?
(121) Emiliya_Emili, про франчайзи я решил, что только они бросают молодых-неопытных на такую работу. Если студентка, то должно быть достаточно времени на изучение теории. Как правильно заметили в (122) нужно подтянуть базу, тогда изучение новых объектов не составит труда. Я например тоже не знаю как работает планировщик и не вижу в этом большой проблемы, так как есть синтакс помощник. Но у вас вопросы по части почему выборка возвращает неопределенно и почему реквизиту ссылки нельзя напрямую присвоить значение, а планировщик лишь в последнюю очередь. Здесь на лицо не знание именно основ, если здание построено на плохом фундаменте, то оно долго не простоит. На форуме принято разъяснять какие то спорные моменты и давать направление куда и что делать, но не делать за человека его работу.
(123) Что это франчайзинг мне не приходило в голову. Т.е. это значит 50$ в час? первый час сдаем в офис, а остальное в карман?!
А вот мой любимый вопрос с наивным видом - "А вам документы нужны?"
Все там были... странно, что люди им платят. Хотя я только обновлять ходил в основном платежку да конфиг.
А вот мой любимый вопрос с наивным видом - "А вам документы нужны?"
Все там были... странно, что люди им платят. Хотя я только обновлять ходил в основном платежку да конфиг.
(8) ture, исправила но все равно выдает ошибку
{(1)}: Значение не является значением объектного типа (Оборудование)
Запрос.Выполнить().Колонки.Ссылка.ТипЗначения Оборудование, Null ОписаниеТипов
ЭлементыПланировщика = ДокументРасписание.Элементы;
ЭлементыПланировщика.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаписьНаЗанятия.Оборудование,
| ЗаписьНаЗанятия.ДатаНачала КАК Начало,
| ЗаписьНаЗанятия.ДатаОкончания КАК Конец,
| ЗаписьНаЗанятия.Клиент КАК Наименование,
| ЗаписьНаЗанятия.Регистратор
|ИЗ
| РегистрСведений.ЗаписьНаЗанятия КАК ЗаписьНаЗанятия
|ГДЕ
| ЗаписьНаЗанятия.ДатаНачала >= &ДатаНачала
| И ЗаписьНаЗанятия.ДатаОкончания <= &ДатаОкончания";
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ВыборДаты));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ВыборДаты));
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
СоответствиеЗначений = Новый Соответствие;
СоответствиеЗначений.Вставить("Оборудование", Результат.Оборудование.Наименование);
НовыйЭлемент = ЭлементыПланировщика.Добавить(Результат.Начало, Результат.Конец);
НовыйЭлемент.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответствиеЗначений);
НовыйЭлемент.Текст = Результат.Наименование;
КонецЦикла;
Показать{(1)}: Значение не является значением объектного типа (Оборудование)
Запрос.Выполнить().Колонки.Ссылка.ТипЗначения Оборудование, Null ОписаниеТипов
Если =СоответствиеЗначений.Вставить("Оборудование", Результат.Оборудование.Наименование);= оборудование это ссылка, уберите реквизит "Наименование"
после Пока Результат.Следующий() Цикл
Если НЕ ЗначениеЗаполнено(Результат.Оборудование) Тогда
Продолжить;
КонецЕсли; //проверка оборудования на Null
Наталья, Вы весь форум загрузили..... Диплом всем скопом получать будем однако.....
после Пока Результат.Следующий() Цикл
Если НЕ ЗначениеЗаполнено(Результат.Оборудование) Тогда
Продолжить;
КонецЕсли; //проверка оборудования на Null
Наталья, Вы весь форум загрузили..... Диплом всем скопом получать будем однако.....
(14) seermak, эта ошибка меня уже достала
Результат.Оборудование {(1)}: Значение не является значением объектного типа (Оборудование)
я планировщик использую еще в одном месте так все отображается но нет измерений и данные получаются из справочника а не регистра сведений, может можно попробовать с ним,хотя не знаю как зафиксировать измерения
Результат.Оборудование {(1)}: Значение не является значением объектного типа (Оборудование)
я планировщик использую еще в одном месте так все отображается но нет измерений и данные получаются из справочника а не регистра сведений, может можно попробовать с ним,хотя не знаю как зафиксировать измерения
&НаСервере
Функция ПолучитьМассивЭлементовПланировщика1(ДатаНач, ДатаКон)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Заметки.Ссылка,
| Заметки.Наименование КАК Текст,
| Заметки.ДатаНачала КАК Начало,
| Заметки.ДатаОкончания КАК Конец
|ИЗ
| Справочник.Заметки КАК Заметки
|ГДЕ
| Заметки.ДатаНачала >= &ДатаНачала
| И Заметки.ДатаОкончания <= &ДатаОкончания";
Запрос.УстановитьПараметр("ДатаНачала", ДатаНач);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаКон);
Выборка = Запрос.Выполнить().Выбрать();
Возврат Выборка;
КонецФункции
&НаСервере
Функция УстановитьЭлементыПланировщика1()
ДатаНач = НачалоДня(ТекущаяДата());
ДатаКон = КонецДня(ТекущаяДата());
Если Заметки.ТекущиеПериодыОтображения.Количество() > 0 Тогда
Начало = Заметки.ТекущиеПериодыОтображения[0].Начало;
Конец = Заметки.ТекущиеПериодыОтображения[0].Конец;
КонецЕсли;
ВыборкаЭлементов = ПолучитьМассивЭлементовПланировщика1(Начало, Конец);
Пока ВыборкаЭлементов.Следующий() Цикл
Если Заметки.Элементы.Найти(ВыборкаЭлементов.Ссылка) = Неопределено Тогда
Элемент = Заметки.Элементы.Добавить(ВыборкаЭлементов.Начало, ВыборкаЭлементов.Конец);
Элемент.Текст = ВыборкаЭлементов.Текст;
Элемент.Значение = ВыборкаЭлементов.Ссылка;
КонецЕсли;
КонецЦикла;
КонецФункции
Показать
(20) dj_serega, вот то что написано сейчас
ЭлементыПланировщика = ДокументРасписание.Элементы;
ЭлементыПланировщика.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаписьНаЗанятия.Оборудование,
| ЗаписьНаЗанятия.ДатаНачала КАК Начало,
| ЗаписьНаЗанятия.ДатаОкончания КАК Конец,
| ЗаписьНаЗанятия.Клиент КАК Наименование,
| ЗаписьНаЗанятия.Регистратор
|ИЗ
| РегистрСведений.ЗаписьНаЗанятия КАК ЗаписьНаЗанятия
|ГДЕ
| ЗаписьНаЗанятия.ДатаНачала >= &ДатаНачала
| И ЗаписьНаЗанятия.ДатаОкончания <= &ДатаОкончания";
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ВыборДаты));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ВыборДаты));
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Если НЕ ЗначениеЗаполнено(Результат.Оборудование) Тогда
Продолжить;
КонецЕсли; //проверка оборудования на Null
СоответствиеЗначений = Новый Соответствие;
СоответствиеЗначений.Вставить("Оборудование", Результат.Оборудование);
НовыйЭлемент = ЭлементыПланировщика.Добавить(Результат.Начало, Результат.Конец);
НовыйЭлемент.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответствиеЗначений);
НовыйЭлемент.Текст = Результат.Наименование;
КонецЦикла;
Показать
(26) dosmd, вот скин и код всей процедуры
ВыборДаты=ТекущаяДата();
ИзмеренияПланировщика = ДокументРасписание.Измерения;
ИзмеренияПланировщика.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Оборудование.Ссылка
|ИЗ
| Справочник.Оборудование КАК Оборудование";
РезультатЗапроса = Запрос.ВыполнитьПакет();
ВыборкаОборудование = РезультатЗапроса[0].Выбрать();
ИзмерениеОборудование = ИзмеренияПланировщика.Добавить("Оборудование");
Пока ВыборкаОборудование.Следующий() Цикл
НовыйОбор = ИзмерениеОборудование.Элементы.Добавить(ВыборкаОборудование.Ссылка);
НовыйОбор.Текст = ВыборкаОборудование.Ссылка.Наименование;
КонецЦикла;
ЭлементыПланировщика = ДокументРасписание.Элементы;
ЭлементыПланировщика.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаписьНаЗанятия.Оборудование,
| ЗаписьНаЗанятия.ДатаНачала КАК Начало,
| ЗаписьНаЗанятия.ДатаОкончания КАК Конец,
| ЗаписьНаЗанятия.Клиент КАК Наименование,
| ЗаписьНаЗанятия.Регистратор
|ИЗ
| РегистрСведений.ЗаписьНаЗанятия КАК ЗаписьНаЗанятия
|ГДЕ
| ЗаписьНаЗанятия.ДатаНачала >= &ДатаНачала
| И ЗаписьНаЗанятия.ДатаОкончания <= &ДатаОкончания";
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ВыборДаты));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ВыборДаты));
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Если НЕ ЗначениеЗаполнено(Результат.Оборудование) Тогда
Продолжить;
КонецЕсли; //проверка оборудования на Null
СоответствиеЗначений = Новый Соответствие;
СоответствиеЗначений.Вставить("Оборудование", Результат.Оборудование);
НовыйЭлемент = ЭлементыПланировщика.Добавить(Результат.Начало, Результат.Конец);
НовыйЭлемент.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответствиеЗначений);
НовыйЭлемент.Текст = Результат.Наименование;
КонецЦикла;
ПоказатьПрикрепленные файлы:
(29) Emiliya_Emili, Вам кстати обязательно в первом запросе использовать ВыполнитьПакет()? Мне кажется это из-за этого метода, во втором запросе получался результат Неопределено. Скорее всего создавалась временная таблица которая во втором запросе автоматом очищалась. А при очистки временной таблице такой запрос будет возвращать в качестве результата Неопределенно.
(33) dosmd, все работает он вывел данные спасибо
не могли бы подсказать как сделать так чтобы при создании документа записи на занятие он заполнял некоторые поля сам (дату время и оборудование)
1 . текущей датой
2 . дата и время (дата начала и окончания) это число на которое записывается человек, и оборудование это оборудование на которое собственно записывается человек
и еще одна проблема: когда я выбираю на календаре дату ничего не происходит хотя должна меняться дата отображения планировщика (отображаться график на выбранный день)
не могли бы подсказать как сделать так чтобы при создании документа записи на занятие он заполнял некоторые поля сам (дату время и оборудование)
1 . текущей датой
2 . дата и время (дата начала и окончания) это число на которое записывается человек, и оборудование это оборудование на которое собственно записывается человек
и еще одна проблема: когда я выбираю на календаре дату ничего не происходит хотя должна меняться дата отображения планировщика (отображаться график на выбранный день)
Прикрепленные файлы:
при создании документа записи на занятие он заполнял некоторые поля сам
см. Процедуру ОбработкаЗаполнения (в модуле объекта) либо ПрисОзданииНаСервере (в модуле формы)
когда я выбираю на календаре дату ничего не происходит
А обработчик ПриИзменении описан?
(42) dj_serega,
1) Заполнение полей автоматически при создании нового документа (поля: дата начала, дата окончания, оборудование)
2)Обновлять расписание после создания или редактирования документа
3)При выборе даты переключать расписание занятий на выбранную дату
4)При выборе документа в расписании открывать документ, а не стандартные формы
5)Если дата не выбрана отображать текущую дату
Пока это все что мне известно, и по ошибкам в том числе
1) Заполнение полей автоматически при создании нового документа (поля: дата начала, дата окончания, оборудование)
2)Обновлять расписание после создания или редактирования документа
3)При выборе даты переключать расписание занятий на выбранную дату
4)При выборе документа в расписании открывать документ, а не стандартные формы
5)Если дата не выбрана отображать текущую дату
Пока это все что мне известно, и по ошибкам в том числе
1. Документ создает текущий пользователь?
2. Для перехвата создания документа нужно использовать событие элемента "Планировщик" - "ПередСозданием".
Пример кода:
3. На событие "ПриИзменение" элемента калентаря вешайте код "УстановитьЭлементыПланировщика(); "
4. В значение элемента планировщика через событие "Выбор" нужно отказаться от стандартной обработки и открыть существующий документ.
5. ПриСозданииНаСервере() или ПриОткрытии() пишете "ДатаКалендата (или как там реквизит с календарем называется) = ТекущаяДата()"
2. Для перехвата создания документа нужно использовать событие элемента "Планировщик" - "ПередСозданием".
Пример кода:
&НаКлиенте
Процедура ПланировщикПередСозданием(Элемент, Начало, Конец, Значения, Текст, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Врач = Значения.Получить("Врачи");
СтруктураОповещения = Новый Структура;
СтруктураОповещения.Вставить("Врач", Врач);
СтруктураОповещения.Вставить("Начало", Начало);
СтруктураОповещения.Вставить("Конец", Конец);
ОтменаРедактирования = Ложь;
ПроверитьДоступностьВрача(Начало, Неопределено, Врач, ОтменаРедактирования);
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
ОткрытьФорму("ОбщаяФорма.ФормаСозданияВизита",, ЭтаФорма,,,,
Новый ОписаниеОповещения("ПланировщикПередСозданиемЗавершение", ЭтотОбъект, СтруктураОповещения), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПланировщикПередСозданиемЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
// Тут выполняется обновление текущего элемента расписания
СоздатьЗаписьЭлементаПлана(ДополнительныеПараметры.Врач, ДополнительныеПараметры.Начало, ДополнительныеПараметры.Конец - 1, Результат);
КонецПроцедуры
Показать3. На событие "ПриИзменение" элемента калентаря вешайте код "УстановитьЭлементыПланировщика(); "
4. В значение элемента планировщика через событие "Выбор" нужно отказаться от стандартной обработки и открыть существующий документ.
5. ПриСозданииНаСервере() или ПриОткрытии() пишете "ДатаКалендата (или как там реквизит с календарем называется) = ТекущаяДата()"
(44) dj_serega,
2.вот что у меня написано в процедуре перед созданием
у меня уже есть но не работает
4.а как открыть существующий?
5.написано в процедуре перед созданием, не помогает
2.вот что у меня написано в процедуре перед созданием
&НаКлиенте
Процедура ДокументРасписаниеПередСозданием(Элемент, Начало, Конец, Значения, Текст, СтандартнаяОбработка)
СтандартнаяОбработка =Ложь;
Форма = ПолучитьФорму("Документ.ЗаписьНаЗанятия.Форма.ФормаДокумента");
ДанныеФормы = Форма.Объект; // Получаем объект формы в переменную
ДокументРасписаниеПередСозданиемНаСервере(ДанныеФормы); // Заполняем документ на сервере
КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); // копируем наш объект в объект формы и далее открываем ее
Форма.Открыть();
КонецПроцедуры
&НаСервере
Процедура ДокументРасписаниеПередСозданиемНаСервере(ДанныеФормы)
Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.ЗаписьНаЗанятия")); // Получаем объект из данных формы ИЛИ
Док = Документы.ЗаписьНаЗанятия.СоздатьДокумент();
ЗначениеВДанныеФормы(Док,ДанныеФормы); //
КонецПроцедуры
Показать3. На событие "ПриИзменение" элемента калентаря вешайте код "УстановитьЭлементыПланировщика(); "
у меня уже есть но не работает
&НаКлиенте
Процедура ВыборДатыПриИзменении(Элемент)
УстановитьЭлементыПланировщика();
КонецПроцедуры
4.а как открыть существующий?
5.написано в процедуре перед созданием, не помогает
(45) Emiliya_Emili, 2. Не нужно ничего копировать. Существующий документ открывается через ключ
ОткрытьФормы(ИмяФормы, Новый Структура("Ключ", СсылкаНаСуществующийДокумент);
И разберитесь с моим кодом. Он работает на 100%.
В процедуру "ПланировщикПередСозданиемЗавершение" попадаем после закрытия документа. Если там что-то изменилось анализируем в "СоздатьЗаписьЭлементаПлана".
3 и 5 это код с (23)?
4. Написано выше в 2.
ОткрытьФормы(ИмяФормы, Новый Структура("Ключ", СсылкаНаСуществующийДокумент);
И разберитесь с моим кодом. Он работает на 100%.
В процедуру "ПланировщикПередСозданиемЗавершение" попадаем после закрытия документа. Если там что-то изменилось анализируем в "СоздатьЗаписьЭлементаПлана".
3 и 5 это код с (23)?
4. Написано выше в 2.
(46) dj_serega, объясните пожалуйста что писать в открытть форму
&НаКлиенте
Процедура ДокументРасписаниеВыбор(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
ОткрытьФормы("Документ.ЗаписьНаЗанятия.Форма.ФормаДоекумента", Новый Структура("Ключ", Документы.ЗаписьНаЗанятия.Выбрать()));
КонецПроцедуры
(47) Emiliya_Emili, в коде
добавляем код
Потом в ДокументРасписаниеВыбор получаем текущий элемент и смотрим в его значение.
Значение элемента передаем через ключ в открытие формы.
НовыйЭлемент = ЭлементыПланировщика.Добавить(Результат.Начало, Результат.Конец);
НовыйЭлемент.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответствиеЗначений);
НовыйЭлемент.Текст = Результат.Наименование;
добавляем код
НовыйЭлемент.Значение = СсылкаНаДокумент
Потом в ДокументРасписаниеВыбор получаем текущий элемент и смотрим в его значение.
МассивВыделенныхЭлементов = Элементы.Планировщик.ВыделенныеЭлементы;
Если Не МассивВыделенныхЭлементов.Количество() Тогда
Возврат;
КонецЕсли;
ВыделенныйЭлементПланировщика = МассивВыделенныхЭлементов[0];
Значение элемента передаем через ключ в открытие формы.
(49) dj_serega, теперь ему не нравится сама процедура открытия формы
{Отчет.РабочийСтол.Форма.ФормаОтчета.Форма(146,2)}: Процедура или функция с указанным именем не определена (ОткрытьФормы)
<<?>>ОткрытьФормы("Документ.ЗаписьНаЗанятия.Форма.ФормаДоекумента", Новый Структура("Ключ", ВыделенныйЭлементПланировщика)); (Проверка: Тонкий клиент)
(56) Emiliya_Emili,
ЭлементыПланировщика = Планировщик.Элементы;
// Связка записей с измерениями выполняется через соответствия
СоответствиеЗначений = Новый Соответствие;
СоответствиеЗначений.Вставить("Врачи", Врач);
// Добавление новой записи в промежуток времени
НовыйЭлемент = ЭлементыПланировщика.Добавить(Начало, Конец);
НовыйЭлемент.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответствиеЗначений);
НовыйЭлемент.Текст = Результат;
НовыйЭлемент.ЦветТекста = Новый Цвет(0,0,0);
Показать
(57) dj_serega, попыталсь с котом попробовать но кроме текущей даты ничего не подставляется
Оборудование = Значения.Получить("Оборудование");
СтруктураОповещения = Новый Структура;
СтруктураОповещения.Вставить("Оборудование", Оборудование);
СтруктураОповещения.Вставить("ДатаНачало", Начало);
СтруктураОповещения.Вставить("ДатаОкончания", Конец);
Оборудование = Значения.Получить("Оборудование");
СтруктураОповещения = Новый Структура;
СтруктураОповещения.Вставить("Оборудование", Оборудование);
СтруктураОповещения.Вставить("ДатаНачало", Начало);
СтруктураОповещения.Вставить("ДатаОкончания", Конец);
(62) dj_serega, вот то что не работает
&НаКлиенте
Процедура ДокументРасписаниеПередСозданием(Элемент, Начало, Конец, Значения, Текст, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оборудование = Значения.Получить("Оборудование");
СтруктураОповещения = Новый Структура;
СтруктураОповещения.Вставить("Оборудование", Оборудование);
СтруктураОповещения.Вставить("ДатаНачало", Начало);
СтруктураОповещения.Вставить("ДатаОкончания", Конец);
ОтменаРедактирования = Ложь;
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
ОткрытьФорму("Документ.ЗаписьНаЗанятия.Форма.ФормаДокумента",, ЭтаФорма,,,,
Новый ОписаниеОповещения("ПланировщикПередСозданиемЗавершение", ЭтотОбъект, СтруктураОповещения), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПланировщикПередСозданиемЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
// Тут выполняется обновление текущего элемента расписания
//СоздатьЗаписьЭлементаПлана(ДополнительныеПараметры.Врач, ДополнительныеПараметры.Начало, ДополнительныеПараметры.Конец - 1, Результат);
КонецПроцедуры
&НаКлиенте
Процедура ДокументРасписаниеВыбор(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
МассивВыделенныхЭлементов = Элементы.ДокументРасписание.ВыделенныеЭлементы;
Если Не МассивВыделенныхЭлементов.Количество() Тогда
Возврат;
КонецЕсли;
ВыделенныйЭлементПланировщика = МассивВыделенныхЭлементов[0];
ОткрытьФорму("Документ.ЗаписьНаЗанятия.Форма.ФормаДоекумента", Новый Структура("Ключ", ВыделенныйЭлементПланировщика));
КонецПроцедуры
&НаКлиенте
Процедура ВыборДатыПриИзменении(Элемент)
УстановитьЭлементыПланировщика();
КонецПроцедуры
Показать
(73) Emiliya_Emili, Ну вот. В нем есть метод "Получить()"
ФиксированноеСоответствие.Получить (FixedMap.Get)
ФиксированноеСоответствие (FixedMap)
Получить (Get)
Синтаксис:
Получить(<Ключ>)
Параметры:
<Ключ> (обязательный)
Тип: Произвольный.
Ключ значения.
Возвращаемое значение:
Тип: Произвольный.
Неопределено - ключ не найден.
Описание:
Получает значение по ключу.
Доступность:
Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
ПоказатьФиксированноеСоответствие (FixedMap)
Получить (Get)
Синтаксис:
Получить(<Ключ>)
Параметры:
<Ключ> (обязательный)
Тип: Произвольный.
Ключ значения.
Возвращаемое значение:
Тип: Произвольный.
Неопределено - ключ не найден.
Описание:
Получает значение по ключу.
Доступность:
Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
(74) dj_serega, ясно
у меня в этой строке не передается параметр
а также не передалось значение в стоке
у меня в этой строке не передается параметр
СтруктураОповещения.Вставить("Оборудование", Оборудование);
Оборудование Неопределено
Оборудование Неопределено
а также не передалось значение в стоке
ОткрытьФорму("Документ.ЗаписьНаЗанятия.Форма.ФормаДокумента",, ЭтаФорма,,,,
Новый ОписаниеОповещения("ПланировщикПередСозданиемЗавершение", ЭтотОбъект, **СтруктураОповещения**), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
СтруктураОповещения Неопределено
Новый ОписаниеОповещения("ПланировщикПередСозданиемЗавершение", ЭтотОбъект, **СтруктураОповещения**), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
СтруктураОповещения Неопределено
(77) ture, попробовала но она работает только на сервере, но как мне передать данные в процедуру на сервере?
&НаКлиенте
Процедура ДокументРасписаниеПередСозданием(Элемент, Начало, Конец, Значения, Текст, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СтруктураОповещения = Новый Структура;
СтруктураОповещения.Вставить("Оборудование", Значения.Получить("Оборудование"));
СтруктураОповещения.Вставить("ДатаНачало", Начало);
СтруктураОповещения.Вставить("ДатаОкончания", Конец);
ДокументРасписаниеПередСозданиемНаСервере();
ОтменаРедактирования = Ложь;
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
ОткрытьФорму("Документ.ЗаписьНаЗанятия.Форма.ФормаДокумента");
КонецПроцедуры
&НаСервере
Процедура ДокументРасписаниеПередСозданиемНаСервере()
ЗначениеВРеквизитФормы(СтруктураОповещения, "Оборудование");
ЗначениеВРеквизитФормы(СтруктураОповещения, "ДатаНачало");
ЗначениеВРеквизитФормы(СтруктураОповещения, "ДатаОкончания");
КонецПроцедуры
Показать
(44) dj_serega,
у меня это написано
но даже с учетом того что все написано , с датами ничего не работает
ПриСозданииНаСервере() или ПриОткрытии() пишете "ДатаКалендата (или как там реквизит с календарем называется) = ТекущаяДата()"
у меня это написано
//////////////СОБЫТИЯ ФОРМЫ////////////////
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьЭлементыПланировщика();
ВыборДаты=ТекущаяДата();
/////////////////ЗАДАЧИ///////////////
ОбновитьЗадачиСервер();
Дата=ТекущаяДата();
УстановитьЭлементыПланировщика1();
////////////////////////////////////////////////
КонецПроцедуры
ПоказатьНа событие "ПриИзменение" элемента калентаря вешайте код "УстановитьЭлементыПланировщика(); "
&НаКлиенте
Процедура ВыборДатыПриИзменении(Элемент)
УстановитьЭлементыПланировщика();
КонецПроцедуры
но даже с учетом того что все написано , с датами ничего не работает
(51) dj_serega,
&НаСервере
Процедура УстановитьЭлементыПланировщика()
ВыборДаты=ТекущаяДата();
ИзмеренияПланировщика = ДокументРасписание.Измерения;
ИзмеренияПланировщика.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Оборудование.Ссылка
|ИЗ
| Справочник.Оборудование КАК Оборудование";
РезультатЗапроса = Запрос.ВыполнитьПакет();
ВыборкаОборудование = РезультатЗапроса[0].Выбрать();
ИзмерениеОборудование = ИзмеренияПланировщика.Добавить("Оборудование");
Пока ВыборкаОборудование.Следующий() Цикл
НовыйОбор = ИзмерениеОборудование.Элементы.Добавить(ВыборкаОборудование.Ссылка);
НовыйОбор.Текст = ВыборкаОборудование.Ссылка.Наименование;
КонецЦикла;
ЭлементыПланировщика = ДокументРасписание.Элементы;
ЭлементыПланировщика.Очистить();
Запрос1 = Новый Запрос;
Запрос1.Текст =
"ВЫБРАТЬ
| ЗаписьНаЗанятия.Оборудование,
| ЗаписьНаЗанятия.ДатаНачала КАК Начало,
| ЗаписьНаЗанятия.ДатаОкончания КАК Конец,
| ЗаписьНаЗанятия.Клиент КАК Наименование,
| ЗаписьНаЗанятия.Регистратор
|ИЗ
| РегистрСведений.ЗаписьНаЗанятия КАК ЗаписьНаЗанятия
|ГДЕ
| ЗаписьНаЗанятия.ДатаНачала >= &ДатаНачала
| И ЗаписьНаЗанятия.ДатаОкончания <= &ДатаОкончания";
Запрос1.УстановитьПараметр("ДатаНачала", НачалоДня(ВыборДаты));
Запрос1.УстановитьПараметр("ДатаОкончания", КонецДня(ВыборДаты));
Результат = Запрос1.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Если НЕ ЗначениеЗаполнено(Результат.Оборудование) Тогда
Продолжить;
КонецЕсли; //проверка оборудования на Null
СоответствиеЗначений = Новый Соответствие;
СоответствиеЗначений.Вставить("Оборудование", Результат.Оборудование);
НовыйЭлемент = ЭлементыПланировщика.Добавить(Результат.Начало, Результат.Конец);
НовыйЭлемент.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответствиеЗначений);
НовыйЭлемент.Текст = Результат.Наименование;
НовыйЭлемент.Значение = Результат.Регистратор;
КонецЦикла;
КонецПроцедуры
Показать
(90)Скажу прямо, как есть, Вы пишите код довольно стройно. Явно прослеживается опытная рука. При этом появляются неожиданные ошибки.
Как вариант это можно объяснить программированием на основе образца, который вы редактируете.
Некоторые пассажи в коде ставят в тупик, т.е. если вы знаете о ТАКОМ, то вот ЭТО уж точно Вам известно.
Отсюда люди теряются и я в том числе.
Как вариант это можно объяснить программированием на основе образца, который вы редактируете.
Некоторые пассажи в коде ставят в тупик, т.е. если вы знаете о ТАКОМ, то вот ЭТО уж точно Вам известно.
Отсюда люди теряются и я в том числе.
(92) ture, ни с чем подобным я никогда не сталкивалась, но реализовать необходимо, поэтому и много ошибок именно в расписании
попробовала так но ничего не меняется
возможно ли что все проблемы и с отображением расписания и его обновлением из-за того что у меня не работает дата?
попробовала так но ничего не меняется
&НаСервере
Процедура ПослеЗаписи(ПараметрыЗаписи)
Расписание=Отчеты.РабочийСтол.ПолучитьФорму("ФормаОтчета");
Расписание.Открыть();
Расписание.Обновить();
КонецПроцедуры
возможно ли что все проблемы и с отображением расписания и его обновлением из-за того что у меня не работает дата?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот