При вызове обработки "Загрузить курсы валют" в конфигурации "Комплексная автоматизация 2.2" рел. 2.2.2.157 программа выдавала ошибку:
{Обработка.ЗагрузкаКурсовВалют.Форма.Форма.Форма(252)}: Запись не верна! Значение поля "Организация" не может быть пустым!: ЗаданияКРаспределениюРасчетовСПоставщиками: 01.01.2017 0:00:00, 37, , GRAND CHINA IMP.& EXP. TRADING CO.,LTD (Folangsi); ЗАО "Компания "АИСТ"; GRAND CHINA IMP.& EXP. TRADING CO.,LTD (Folangsi); Contract № I-01/17 от 11.0, Заказ поставщику 0000-000013 от 12.01.2017 11:38:12, (Регистр сведений: Задания к распределению расчетов с поставщиками)
ВызватьИсключение(Результат.КраткоеПредставлениеОшибки);
Искал варианты долго, где должна подставляться Организация.
Не знаю, прав я или нет, но мне кажется, что дело в некоррекктном запросе в общем модуле "ЗакрытиеМесяцаУТВызовСервера"
В процедуре ПроверитьНеобходимостьПереоценки(ДополнительныеСвойства, Движения, Отказ) в строке 610 есть текст запроса:
Запрос.Текст = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ""ЗаданияКРаспределениюРасчетовСКлиентами"" КАК ИмяРегистраЗаданий,
| ""НомерЗаданияКРаспределениюРасчетовСКлиентами"" КАК ИмяКонстанты,
| Клиенты.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| Клиенты.ЗаказКлиента КАК ОбъектРасчетов,
| &НачалоМесяца КАК Месяц
|ИЗ
| РегистрНакопления.РасчетыСКлиентами КАК Клиенты
|ГДЕ
| Клиенты.Период МЕЖДУ &НачалоМесяца И &КонецМесяца
| И Клиенты.Валюта = &Валюта
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ""ЗаданияКРаспределениюРасчетовСПоставщиками"" КАК ИмяРегистраЗаданий,
| ""НомерЗаданияКРаспределениюРасчетовСПоставщиками"" КАК ИмяКонстанты,
| Клиенты.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| Клиенты.ЗаказПоставщику КАК ОбъектРасчетов,
| &НачалоМесяца КАК Месяц
|ИЗ
| РегистрНакопления.РасчетыСПоставщиками КАК Клиенты
|ГДЕ
| Клиенты.Период МЕЖДУ &НачалоМесяца И &КонецМесяца
| И Клиенты.Валюта = &Валюта
|";
Запрос.УстановитьПараметр("Валюта", Выборка.Валюта);
Запрос.УстановитьПараметр("НачалоМесяца", НачалоМесяца(Выборка.Месяц));
Запрос.УстановитьПараметр("КонецМесяца", КонецМесяца(Выборка.Месяц));
И его дальнейшая обработка:
ВыборкаРасчетов = Запрос.Выполнить().Выбрать();
Пока ВыборкаРасчетов.Следующий() Цикл
Задания = РегистрыСведений[ВыборкаРасчетов.ИмяРегистраЗаданий].СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(Задания, ВыборкаРасчетов);
Задания.НомерЗадания = Константы[ВыборкаРасчетов.ИмяКонстанты].Получить();
Задания.Записать();
КонецЦикла;
Так вот, в выделенной строке команда заполняет набор записи регистра. Но в результате запроса отсутствует значение "Организация"
После изменения текста запроса на:
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| ""ЗаданияКРаспределениюРасчетовСКлиентами"" КАК ИмяРегистраЗаданий,
| ""НомерЗаданияКРаспределениюРасчетовСКлиентами"" КАК ИмяКонстанты,
| Клиенты.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| Клиенты.ЗаказКлиента КАК ОбъектРасчетов,
| &НачалоМесяца КАК Месяц,
| Клиенты.АналитикаУчетаПоПартнерам.Организация КАК Организация
|ИЗ
| РегистрНакопления.РасчетыСКлиентами КАК Клиенты
|ГДЕ
| Клиенты.Период МЕЖДУ &НачалоМесяца И &КонецМесяца
| И Клиенты.Валюта = &Валюта
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ""ЗаданияКРаспределениюРасчетовСПоставщиками"",
| ""НомерЗаданияКРаспределениюРасчетовСПоставщиками"",
| Клиенты.АналитикаУчетаПоПартнерам,
| Клиенты.ЗаказПоставщику,
| &НачалоМесяца,
| Клиенты.АналитикаУчетаПоПартнерам.Организация
|ИЗ
| РегистрНакопления.РасчетыСПоставщиками КАК Клиенты
|ГДЕ
| Клиенты.Период МЕЖДУ &НачалоМесяца И &КонецМесяца
| И Клиенты.Валюта = &Валюта";
задание по загрузке курсов валют выполняется.
Может, я, конечно, чего-то недоглядел и надо было сделать что-то, чего я не понял? Но после 4 часов бесплодных попыток найти что-либо об этом в инете я посчитал, что это решение моих проблем.