Что значит "отсутствует"? Пустое? Если так, то 1. надо править (дорабатывать) программу для заполнения этого субконто нужными документами; 2. править руками проводки документа, заполнять субконто.
Там списываются материалы и при этом получается продукция. У вас схожий процесс - списали кирпичи и шифер, получился дом. Ну это в двух словах . Но просто конфа у вас специфическая немного, поэтому DartRomanius и написал, что нужно искать там нечто подобное.
Выше писала, что если скопировать базу на проблемный комп, работает совершенно без проблем. Поэтому предполагаю, что дело не в базе, а все-таки в доступе по сети.
Я имел ввиду перенести базу на другой комп и работать с ней по сети с остальных, так сказать, сменить физический сервер.
Это не совсем статья, но полезная инфа, поэтому решил написать
В общем, вы сделали отчет с помощью системы компоновки дланных и у вас он работает как надо. Вы довольный встраиваете его в конфу и отдаёте на растерзание пользователям. Но через час звонит пользователь и говорит, что у него какая-то лажа с отчетом. Смотрим. И видим, что у пользователя в отчете нету некоторых доступных полей. Открываете отчет у себя - всё в порядке, всё есть. У пользователя - нет ничего. А дело в том, что система компоновки данных (СКД) понимает когда у пользователя нету прав на объект и в таком случае она не показывает даже поля из него! Для того, чтобы у пользователя в отчете появились нужные поля - надо иметь права в системе на соответствующие объекты.
ПринадлежитПоследовательности(Докум) - Определяет, принадлежит ли документ (или вид документа) данной последовательности. Возвращает "1", если принадлежит, "0" - если нет.
ПолучитьАтрибут(Имя) - Получить значение последовательности по строке с именем последовательности. Обычно применяется для передачи контекста данной последовательности в переменную.
ПолучитьПозицию(), ПолучитьДокумент() - Схожие между собой методы, первый возвращает строковую позицию границы последовательности (ГП), а второй - ссылку на документ, на котором стоит граница последовательности.
ПолучитьДату(), ПолучитьВремя(Ч,М,С) - Тоже подобные методы, первый возвращает дату, а второй - время границы последовательности (ГП), причем часы, минуты, секунды записываются в разные переменные.
Сравнить(Докум) - Очень удобный метод для определения положения документа (или даты) относительно ГП. В параметр Докум можно записать дату, документ или позицию документа. Возвращает "-1", если ГП раньше, "0" - если равны, и "1", если ГП позже.
Установить(Положение) - Принудительно устанавливает ГП в позицию, указанную переменной Положение. В эту переменную можно передавать документ, дату или позицию документа. Осторожнее со сдвигом "вперед", документы до новой точки автоматически не перепроводятся.
ВыбратьПоПоследовательности(ДатаНач, ДатаКон, Имя) - Открывает выборку документов с ДатаНач по ДатаКон, принадлежащих указанной Последовательности. В качестве дат так же можно использовать документы или их позиции.
Эта тема тоже достаточна распространена. Нюанс программного изменения отбора заключается в том, что коллекция:
КомпоновщикНастроек.Настройки.Отбор.Элементы
в отличие от аналогичной коллекции параметров, не имеет метода Найти(). Можно конечно изменять отбор «в лоб», т.е. по индексу, но это не есть хорошо. Самый оптимальный вариант, обходить все поля отбора в цикле.
Приведу пример универсальной функции для изменения отбор компоновки данных:
//Ищет отбор в компоновщике настроек по параметрам, заданным через //"СоответствиеПоискаОтбора", и заменяет //на отбор с параметрами, указанными в "СоответствиеНовогоОтбора" Процедура ИзменитьОтбор(ЭлементСтруктуры, СоответствиеПоискаОтбора = Неопределено, СоответствиеНовогоОтбора) Экспорт
Если ТипЗнч(ЭлементСтруктуры) = Тип("КомпоновщикНастроекКомпоновкиДанных") Тогда Отбор = ЭлементСтруктуры.Настройки.Отбор; Иначе Отбор = ЭлементСтруктуры; КонецЕсли;
Если ТипЗнч(СоответствиеНовогоОтбора["ЛевоеЗначение"]) = Тип("Строка") Тогда нПоле = Новый ПолеКомпоновкиДанных(СоответствиеНовогоОтбора.ЛевоеЗначение); Иначе нПоле = СоответствиеНовогоОтбора["ЛевоеЗначение"]; КонецЕсли;
Если СоответствиеНовогоОтбора.Получить("ВидСравнения") = Неопределено Тогда нВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Иначе нВидСравнения = СоответствиеНовогоОтбора["ВидСравнения"]; КонецЕсли;
Если СоответствиеНовогоОтбора.Получить("Использование") = Неопределено Тогда нИспользование = Истина; Иначе нИспользование = СоответствиеНовогоОтбора["Использование"]; КонецЕсли;
нЗначение = СоответствиеНовогоОтбора["Значение"];
ТолькоПоЛевомуЗначению = Ложь; Если СоответствиеПоискаОтбора = Неопределено Тогда ТолькоПоЛевомуЗначению = Истина; КонецЕсли;
сЛевоеЗначение = СоответствиеПоискаОтбора.Получить("ЛевоеЗначение"); Если сЛевоеЗначение = Неопределено Тогда сЛевоеЗначение = нПоле; КонецЕсли;
сВидСравнения = СоответствиеПоискаОтбора.Получить("ВидСравнения"); Если ВидСравнения = Неопределено Тогда сВидСравнения = ВидСравнения; КонецЕсли;
сИспользование = СоответствиеПоискаОтбора.Получить("Использование"); Если сИспользование = Неопределено Тогда сИспользование = нИспользование; КонецЕсли;
Для каждого ЭлементОтбора Из Отбор.Элементы Цикл Если ТолькоПоЛевомуЗначению Тогда НайденныйОтбор = ЭлементОтбора; Прервать; Иначе Если (ЭлементОтбора.ЛевоеЗначение = сЛевоеЗначение) И (ЭлементОтбора.ВидСравнения = сВидСравнения) И (ЭлементОтбора.Использование = сИспользование) Тогда НайденныйОтбор = ЭлементОтбора; Прервать; КонецЕсли; КонецЕсли; КонецЦикла;
Если НайденныйОтбор <> Неопределено Тогда НайденныйОтбор.ЛевоеЗначение = нПоле; НайденныйОтбор.Использование = нИспользование; НайденныйОтбор.ВидСравнения = нВидСравнения; НайденныйОтбор.ПравоеЗначение = нЗначение; КонецЕсли;
КонецПроцедуры
Пример вызова процедуры:
СоответствиеПоискаОтбора = Новый Соответствие; СоответствиеПоискаОтбора.Вставить("ЛевоеЗначение",Новый ПолеКомпоновкиДанных("Наименование")); СоответствиеПоискаОтбора.Вставить("ВидСравнения",ВидСравненияКомпоновкиДанных.Содержит); СоответствиеПоискаОтбора.Вставить("Использование",Истина);
СоответствиеНовогоОтбора = Новый Соответствие; СоответствиеНовогоОтбора.Вставить("ЛевоеЗначение",Новый ПолеКомпоновкиДанных("Наименование")); СоответствиеНовогоОтбора.Вставить("ВидСравнения",ВидСравненияКомпоновкиДанных.Содержит); СоответствиеНовогоОтбора.Вставить("Использование",Истина); СоответствиеНовогоОтбора.Вставить("Значение","бла-бла-бла");
В данном запросе будет ошибка ... потому что в запросе не выбирается поле Дата или Ссылка.
Вот же мне повезло!!! У меня ошибок таких нет.
meverikxp, лично мне уже начинает надоедать ваше лентяйство! Попробовали б вы мой запрос - убедились бы в том, что всё замечательно работает.
И вопросы чётче задавать надо!
Контрол + Ц, Контрол + В:
ВЫБРАТЬ РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагенты, РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента КАК ДоговорКонтрагента, СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество, СУММА(РеализацияТоваровУслугТовары.Цена) КАК Цена, СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка.Дата Между &Дата И &Дата2
СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Ссылка.Контрагент, РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!