Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: В условиях соединения запроса не допускается обращение к табличным частям. 1C 8.3

Здравствуйте! При выполнении запроса выбивает ошибку. Помогите пожалуйста найти решение.


Ошибка:
{Документ.ИнвентаризацияТоваровНаСкладе.МодульМенеджера(1935)}: Ошибка при вызове метода контекста (Выполнить)
Возврат Запрос.Выполнить().Выбрать();
по причине:
Ошибка выполнения запроса
по причине:
Запрос невозможно исполнить
В условиях соединения запроса не допускается обращение к табличным частям. (1)


Запрос:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
ВЫБРАТЬ
    ИнвентаризацияТоваровНаСкладе.Ссылка КАК Ссылка,
    ИнвентаризацияТоваровНаСкладе.Номер,
    ИнвентаризацияТоваровНаСкладе.Дата,
    ИнвентаризацияТоваровНаСкладе.Дата КАК ДатаСнятияОстатков,
    ИнвентаризацияТоваровНаСкладе.ДатаНачалаИнвентаризации КАК ДатаНачалаИнвентаризации,
    ИнвентаризацияТоваровНаСкладе.ДатаОкончанияИнвентаризации КАК ДатаОкончанияИнвентаризации,
    ИнвентаризацияТоваровНаСкладе.ДокументОснованиеВид КАК ДокументОснованиеВид,
    ИнвентаризацияТоваровНаСкладе.ДокументОснованиеДата КАК ДокументОснованиеДата,
    ИнвентаризацияТоваровНаСкладе.ДокументОснованиеНомер КАК ДокументОснованиеНомер,
    ИнвентаризацияТоваровНаСкладе.ОтветственноеЛицо КАК ОтветственноеЛицо,
    ИнвентаризацияТоваровНаСкладе.Организация,
    ИнвентаризацияТоваровНаСкладе.Склад.Представление КАК ПредставлениеСклада,
    ИнвентаризацияТоваровНаСкладе.Организация КАК Организация1,
    ИнвентаризацияТоваровНаСкладе.СчетУчетаБУ,
    ИнвентаризацияТоваровНаСкладе.Склад,
    ИнвентаризацияТоваровНаСкладе.Товары.(
        НомерСтроки,
        Номенклатура,
        Номенклатура.НаименованиеПолное КАК Товар,
        Номенклатура.Наименование КАК ТоварКратко,
        ВЫБОР
            КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул)
                ТОГДА ИнвентаризацияТоваровНаСкладе.Товары.Номенклатура.Артикул
            ИНАЧЕ ИнвентаризацияТоваровНаСкладе.Товары.Номенклатура.Код
        КОНЕЦ КАК КодАртикул,
        СчетУчета КАК СубСчет,
        Количество КАК Количество,
        КоличествоУчет КАК КоличествоПоУчету,
        Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
        Номенклатура.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
        Цена,
        Сумма,
        СуммаУчет КАК СуммаПоУчету,
        Номенклатура.Код
    ),
    ИнвентаризацияТоваровНаСкладе.ИнвентаризационнаяКомиссия.(
        НомерСтроки,
        ФизЛицо,
        Председатель КАК Председатель
    ),
    ИнвентаризацияТоваровНаСкладе.ПричинаПроведенияИнвентаризации,
    ХозрасчетныйОборотыДтКт.СубконтоДт3.КодПартии
ИЗ
    Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт КАК ХозрасчетныйОборотыДтКт
        ПО ИнвентаризацияТоваровНаСкладе.Товары.Номенклатура.Ссылка = ХозрасчетныйОборотыДтКт.СубконтоДт3.Ссылка
ГДЕ
    ИнвентаризацияТоваровНаСкладе.Ссылка В(&МассивОбъектов)
Ответ: Я бы сделал как-то так:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Док.Ссылка                          КАК Ссылка,
    Док.Номер                           КАК Номер,
    Док.Дата                            КАК Дата,
    Док.Дата                            КАК ДатаСнятияОстатков,
    Док.ДатаНачалаИнвентаризации        КАК ДатаНачалаИнвентаризации,
    Док.ДатаОкончанияИнвентаризации     КАК ДатаОкончанияИнвентаризации,
    Док.ДокументОснованиеВид            КАК ДокументОснованиеВид,
    Док.ДокументОснованиеДата           КАК ДокументОснованиеДата,
    Док.ДокументОснованиеНомер          КАК ДокументОснованиеНомер,
    Док.ОтветственноеЛицо               КАК ОтветственноеЛицо,
    Док.Организация                     КАК Организация,
    Док.Склад.Представление             КАК ПредставлениеСклада,
    Док.СчетУчетаБУ                     КАК СчетУчетаБУ,
    Док.Склад                           КАК Склад,
    Док.ПричинаПроведенияИнвентаризации КАК ПричинаПроведенияИнвентаризации
ПОМЕСТИТЬ втДанныеДокументов
ИЗ
    Документ.ИнвентаризацияТоваровНаСкладе КАК Док
ГДЕ
    Док.Ссылка В(&МассивОбъектов)
;
ВЫБРАТЬ
    Шапка.Ссылка                          КАК Ссылка,
    Шапка.Номер                           КАК Номер,
    Шапка.Дата                            КАК Дата,
    Шапка.Дата                            КАК ДатаСнятияОстатков,
    Шапка.ДатаНачалаИнвентаризации        КАК ДатаНачалаИнвентаризации,
    Шапка.ДатаОкончанияИнвентаризации     КАК ДатаОкончанияИнвентаризации,
    Шапка.ДокументОснованиеВид            КАК втДанныеДокументовументОснованиеВид,
    Шапка.ДокументОснованиеДата           КАК втДанныеДокументовументОснованиеДата,
    Шапка.ДокументОснованиеНомер          КАК втДанныеДокументовументОснованиеНомер,
    Шапка.ОтветственноеЛицо               КАК ОтветственноеЛицо,
    Шапка.Организация                     КАК Организация,
    Шапка.Склад.Представление             КАК ПредставлениеСклада,
    Шапка.СчетУчетаБУ                     КАК СчетУчетаБУ,
    Шапка.Склад                           КАК Склад,
    Шапка.ПричинаПроведенияИнвентаризации КАК ПричинаПроведенияИнвентаризации
ИЗ
    втДанныеДокументов КАК Шапка
;
ВЫБРАТЬ
    Товары.Ссылка                   КАК Ссылка,
    Товары.НомерСтроки              КАК НомерСтроки,
    Товары.Номенклатура             КАК Номенклатура,
    Товары.СчетУчета                КАК СубСчет,
    Товары.Количество               КАК Количество,
    Товары.КоличествоУчет           КАК КоличествоПоУчету,
    Товары.Цена                     КАК Цена,
    Товары.Сумма                    КАК Сумма,
    Товары.СуммаУчет                КАК СуммаПоУчету,
    Номенклатура.НаименованиеПолное КАК Товар,
    Номенклатура.Наименование       КАК ТоварКратко,
    Номенклатура.Код                КАК Код,
    Номенклатура.КодПартии          КАК КодПартии,
    ВЫБОР КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул) ТОГДА
        Номенклатура.Артикул
    ИНАЧЕ
        Номенклатура.Код
    КОНЕЦ                           КАК КодАртикул,
    ЕдиницыИзмерения.Код            КАК ЕдиницаИзмеренияКодПоОКЕИ,
    ЕдиницыИзмерения.Наименование   КАК ЕдиницаИзмеренияНаименование
ИЗ
    Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК Товары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    втДанныеДокументов КАК втДанныеДокументов ПО Товары.Ссылка = втДанныеДокументов.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    Справочник.Номенклатура КАК Номенклатура 
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ
            Справочник.КлассификаторЕдиницИзмерения КАК ЕдиницыИзмерения ПО Номенклатура.ЕдиницаИзмерения = ЕдиницыИзмерения.Ссылка
    ПО Товары.Номенклатура = Номенклатура.Ссылка
;
ВЫБРАТЬ
    Комиссия.Ссылка       КАК Ссылка,
    Комиссия.НомерСтроки  КАК НомерСтроки,
    Комиссия.ФизЛицо      КАК ФизЛицо,
    Комиссия.Председатель КАК Председатель
ИЗ
    Документ.ИнвентаризацияТоваровНаСкладе.ИнвентаризационнаяКомиссия КАК Комиссия
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    втДанныеДокументов КАК втДанныеДокументов ПО Комиссия.Ссылка = втДанныеДокументов.Ссылка
Потом что-то вроде Пакет = Запрос.ВыполнитьПакет(); Шапка = Пакет[1].Выбрать(); ТЧ_Товары = Пакет[1].Выгрузить(); ТЧ_Комиссия = Пакет[2].Выгрузить(); Ну или через итоги и обход группировок, как больше нравится.

И, хоть убейте, но не понимаю, зачем вам вытаскивать значение реквизита "КодПартии" из СубконтоДт3, если его можно получить из самой номенклатуры. Либо я не понял смысла соединения с регистром бухгалтерии.
Вопрос: Соединение таблиц в запросе для УТ 10.3

Добрый день.

Конфигурация Управление Торговлей 10.3.29.1

Требуется сделать отчет, в котором будут записи регистра "Партии товаров на складах" с регистраторами: РеализацияТоваровУслуг и ОтчетОРозничныхПродажах и чтобы в отчете была отображена сумма и количество, по которой номенклатура продана в этих документах.
Вроде бы всё просто. Получаю все записи регистра "Партии товаров на складах" с определенными отборами. Затем получаю таблицу "Товары" у регистратора. И выполняю соединение этих двух таблиц по полю "Номенклатура".
Но в результате сумма продажи и количество не соответствуют действительности. Пробовал все типы соединений. Вроде бы верным должно быть левое.
На скриншоте видно, что в первой строке сумма продажи = 5168 и количество продажи = 4, хотя по этому "Отчету о рознице" продано 6 штук по 1520 р.
Почему запрос получает некорректные данные при соединении с табличной частью Товары? В чем может быть ошибка?

Текст запроса:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
ВЫБРАТЬ ПЕРВЫЕ 10
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
    ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор,
    ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования,
    ОтчетОРозничныхПродажахТовары.Сумма КАК СуммаПродажи,
    ОтчетОРозничныхПродажахТовары.Количество КАК КоличествоПродажи,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, , Регистратор, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
        ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = ОтчетОРозничныхПродажахТовары.Номенклатура
ГДЕ
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = &Номенклатура
    И ПартииТоваровНаСкладахОстаткиИОбороты.Склад = &Склад
    И (ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор) = ТИП(Документ.РеализацияТоваровУслуг)
            ИЛИ ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор) = ТИП(Документ.ОтчетОРозничныхПродажах))
 
СГРУППИРОВАТЬ ПО
    ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор,
    ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
    ОтчетОРозничныхПродажахТовары.Сумма,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток,
    ОтчетОРозничныхПродажахТовары.Количество
Ответ: Thomas.Angelo,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
ВЫБРАТЬ
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
    ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор,
    ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования,
    ОтчетОРозничныхПродажахТовары.Сумма КАК СуммаПродажи,
    ОтчетОРозничныхПродажахТовары.Количество КАК КоличествоПродажи,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
        ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = ОтчетОРозничныхПродажахТовары.Номенклатура
            И ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор = ОтчетОРозничныхПродажахТовары.Ссылка
ГДЕ
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = &Номенклатура
    И ПартииТоваровНаСкладахОстаткиИОбороты.Склад = &Склад
    И (ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор) = ТИП(Документ.ОтчетОРозничныхПродажах))
 
СГРУППИРОВАТЬ ПО
    ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор,
    ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
    ОтчетОРозничныхПродажахТовары.Сумма,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток,
    ОтчетОРозничныхПродажахТовары.Количество
 
ОБЪЕДИНИТЬ ВСЕ
 
ВЫБРАТЬ
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
    ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор,
    ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования,
    РеализацияТоваровУслугТовары.Сумма,
    РеализацияТоваровУслугТовары.Количество,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = РеализацияТоваровУслугТовары.Номенклатура
            И ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор = РеализацияТоваровУслугТовары.Ссылка
ГДЕ
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = &Номенклатура
    И ПартииТоваровНаСкладахОстаткиИОбороты.Склад = &Склад
    И (ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор) = ТИП(Документ.РеализацияТоваровУслуг))
 
СГРУППИРОВАТЬ ПО
    ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор,
    ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
    РеализацияТоваровУслугТовары.Сумма,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток,
    РеализацияТоваровУслугТовары.Количество
Вопрос: COM соединение, план видов характеристик

Задача – программно создать новый элемент в известном плане видов характеристик через COM соединение. Соединение установлено, тут всё нормально.

Я пишу так:

ОписаниеТиповТек = Новый ОписаниеТипов("СправочникСсылка.Контрагенты");
НазначениеСвойства = Соединение.ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.НайтиПоНаименованию("Справочник ""Физические лица""");
НовыйЭлемент = Соединение.ПланыВидовХарактеристик.СвойстваОбъектов.СоздатьЭлемент();
НовыйЭлемент.Наименование = НаименованиеСвойства;
НовыйЭлемент.НазначениеСвойства = НазначениеСвойства;
НовыйЭлемент.ТипЗначения = ОписаниеТиповТек;


Последняя строка не срабатывает. И это понятно, он находит такой тип для базы, где 1С запущен, но мне-то нужен тип для присоединённой базы. А как его получить?

В моём варианте просто создаётся элемент с типом значения «Произвольный список». Оно работает в принципе, но некрасиво как-то.

Плватформа 8.3. COM-соединение – непременное условие. Решения без его использования не интересуют.
Ответ:
Vvche69
А так не прокатывает?

ОписаниеТиповТек = Соединение.NewObject("ОписаниеТипов", "СправочникСсылка.Контрагенты");


Прокатывает. Спасибо, оно заработало.
Вопрос: Соединение Наборов Данных в СКД

1. НаборДанных1
 
|ВЫБРАТЬ
| Контрагенты.Ссылка КАК Контрагент
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
 
 
2. НаборДанных2
 
|ВЫБРАТЬ
| Номенклатура.Ссылка КАК Товар,
| Номенклатура.ОсновнойПоставщик КАК ОсновнойПоставщик
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
 
ОсновнойПоставщик - тип: Справочники.Контрагенты

НаборДанных1
ЛЕВОЕ СОЕДИНЕНИЕ НаборДанных2
ПО НаборДанных1.Контрагент = НаборДанных2.ОсновнойПоставщик

1. Если группировать по Контрагенту, то будет Левое Соединение
2. Если группировать по ОсновномуПоставщику, тоже будет Левое Соединение, несмотря то, что в Результате Компоновки (Табличном документе) мы наблюдаем Внутреннее Соединение, но
в Консоле системы компоновки данных в сформированном Макете Компоновщиком макета на закладке "Макет для табличного документа XML" между тегами: <dataSetLink> нет описания <linkType>Inner</linkType>,

тогда можно предположить, что на уровне Процессора Вывода происходит "игнорирование" Полей группировки с типом NULL зависимого Набора Данных  
(при этом в зависимом наборе НабореДанных2 по полю ОсновнойПоставщик  чекбокс "Игнорировать значения NULL" не взведен в указании Роль)

Есть мнение, что если группировать по ОсновномуПоставщику, то будет ВнутренеееСоединение?


Все таки Левое или Внутреннее?
Ответ: ()
Мне почему-то кажется по другому, что соединение Левое, а на уровне Процессора Вывода отбрасываются записи.
Вопрос: Почему одна закладка веб-клиента (IE, Chrom) создает много соединений с базой?

Почему одна закладка веб-клиента (IE, Chrome) создает 10 соединений с базой?


Сервер 1С на линуксе (8.3.10.2699), там же апач, простая база на УФ.
Практически на каждый чих (открытие формы обработки или выбор из формы списка) появляется новое соединение: Приложение - Модуль расширения веб-сервера. И похоже, что каждое соединение жрет лицензию! По 10 лицензий на 1 рабочее место - слишком круто выходит.
Как бороться? Посмотрите кто-нибудь, у вас так же?
Ответ: у нас на 8.3.10.2580 несколько соединений на один сеанс, но лицензии ведь выдаются на сеанс, а не на соединение
Вопрос: 1С8.3 Сохранение ком соединения на сервере. Тонкий клиент.

Добрый день.
Есть задача, "синхронизации" некоторых справочников 1с8.3 и 1с7.7.
С:Предприятие 8.3 (8.3.7.2008)
Бухгалтерия предприятия, редакция 3.0 (3.0.43.152)
1С7.7 Бухгалтерский учет.
"Синхронизация" происходит только со стороны 8.3.

Все работает. Но сейчас при каждом обращении, открывается ком соединение.
Что очень не быстро.
Хотелось бы, создать соединение, и сохранить его, до конца работы.

Нашел варианты


В принципе одно и то же.
Но они только для 8.2
В 8.3 нельзя это положить во временное хранилище.
Цитата:
Если во временное хранилище значений помещается несериализуемое значение, следует пересмотреть проектное решение.

С 1С знаком слабо.
Подскажите, какие способы еще есть?
Ответ:
asdor
Добрый день.
Есть задача, "синхронизации" некоторых справочников 1с8.3 и 1с7.7.
С:Предприятие 8.3 (8.3.7.2008)
Бухгалтерия предприятия, редакция 3.0 (3.0.43.152)
1С7.7 Бухгалтерский учет.
"Синхронизация" происходит только со стороны 8.3.

Все работает. Но сейчас при каждом обращении, открывается ком соединение.
Что очень не быстро.
Хотелось бы, создать соединение, и сохранить его, до конца работы.

Нашел варианты


В принципе одно и то же.
Но они только для 8.2
В 8.3 нельзя это положить во временное хранилище.
Цитата:
Если во временное хранилище значений помещается несериализуемое значение, следует пересмотреть проектное решение.

С 1С знаком слабо.
Подскажите, какие способы еще есть?

способ - заставить работать сервер... делаешь регистр в него добавляешь что на обмен ... на сервере висит задание ( можно с ожиданием сделать(ПодключитьОбработчикОжидания) и проверяет регистр и отправляет по обмену.
Вопрос: Блокировка соединений с ИБ

Уважаемые эксперты, прошу подсказки! Столкнулся с подобным впервые.
Win Server 2008 R2 Enterprise SP1
1С:Предприятие 8.3 (8.3.9.2170)
В консоли сервера 1С включил блокировку соединений с базой на выходные (с вечера пятницы по утро понедельника) с кодом разрешения для главбуха. Всё работало (в субботу главбух действительно смогла войти только с кодом разрешения).
Но в воскресенье смог подключиться другой пользователь, которому вход не был разрешен (код разрешения он знать не мог).
Посмотрел в консоли сервера 1С - в свойствах базы в консоли сервера никакой блокировки соединений не было. Не то что галка блокировки снята, а вообще не было записей ни о времени начала блокировки, ни о времени окончания, т.е. вообще пустое окно свойств.
Служба совершенно точно не перезапускалась, потому что другая открытая база нормально работала и осталась открытой.
Можно ли посмотреть лог, чтобы выяснить когда и почему могла слететь блокировка соединений?
Спасибо!
Ответ:
чтобы поставить блокировку соединения с базой, необходимо знать логин с админскими правами и его пароль в той БД, в которой необходимо установить блокировку.
Если в БД нет пользователей, то блокировку может установить любой, при условии отсутствия администратора кластера 1С.
Вопрос: Соединение таблиц в запросе

Всем добрый день!

Помогите пожалуйста. Есть новый созданный регистр накопления по которому делаются движения из нескольких документов - накладная на отпуск, ПКО, платежка, возврат. Есть такое понятие для отчета как дата отгрузки по этой дате я так же получаю курсы валют. Так вот когда делаешь в виртуальное таблице запись по регистратору - тогда выходят не верные остатки на начало . А когда делаешь запись в РН по дате отгрузке - таблица разъезжается потому что в ПКО, платежке и возврате нет даты отгрузки она пустая. Дорогие профессионалы подскажите как быть.....
--- Объединение сообщений, 10 фев 2016 в 04:39 ---
Код:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РасчетыЕвроОстаткиИОбороты.СуммаТенгеПриход,
    РасчетыЕвроОстаткиИОбороты.Контрагент,
    РасчетыЕвроОстаткиИОбороты.Договор,
    РасчетыЕвроОстаткиИОбороты.СуммаЕвроПриход,
    РасчетыЕвроОстаткиИОбороты.СуммаТенгеНачальныйОстаток,
    РасчетыЕвроОстаткиИОбороты.СуммаЕвроНачальныйОстаток,
    РасчетыЕвроОстаткиИОбороты.СуммаТенгеРасход,
    РасчетыЕвроОстаткиИОбороты.СуммаЕвроРасход,
    РасчетыЕвроОстаткиИОбороты.СуммаТенгеКонечныйОстаток,
    РасчетыЕвроОстаткиИОбороты.СуммаЕвроКонечныйОстаток,
    НАЧАЛОПЕРИОДА(РасчетыЕвроОстаткиИОбороты.ДатаОтгрузки, ДЕНЬ) КАК ДатаОтгрузки,
    ВЫБОР
        КОГДА РасчетыЕвроОстаткиИОбороты.СуммаТенгеКонечныйОстаток = 0
            ТОГДА РасчетыЕвроОстаткиИОбороты.СуммаЕвроПриход - (РасчетыЕвроОстаткиИОбороты.СуммаЕвроНачальныйОстаток + РасчетыЕвроОстаткиИОбороты.СуммаЕвроРасход)
        ИНАЧЕ 0
    КОНЕЦ КАК КурсоваяРазница
ПОМЕСТИТЬ ВТ_ПТиУ
ИЗ
    РегистрНакопления.РасчетыЕвро.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК РасчетыЕвроОстаткиИОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МАКСИМУМ(КурсыВалют.Период) КАК Период,
    КурсыВалют.Валюта,
    ВТ_ПТиУ.СуммаТенгеПриход,
    ВТ_ПТиУ.Контрагент,
    ВТ_ПТиУ.Договор,
    ВТ_ПТиУ.СуммаЕвроПриход,
    ВТ_ПТиУ.СуммаТенгеНачальныйОстаток,
    ВТ_ПТиУ.СуммаЕвроНачальныйОстаток,
    ВТ_ПТиУ.СуммаТенгеРасход,
    ВТ_ПТиУ.СуммаЕвроРасход,
    ВТ_ПТиУ.СуммаТенгеКонечныйОстаток,
    ВТ_ПТиУ.СуммаЕвроКонечныйОстаток,
    ВТ_ПТиУ.ДатаОтгрузки,
    ВТ_ПТиУ.КурсоваяРазница
ПОМЕСТИТЬ ВТ_ЗаписиРегистра
ИЗ
    ВТ_ПТиУ КАК ВТ_ПТиУ
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
        ПО (КурсыВалют.Валюта = &Валюта)
            И ВТ_ПТиУ.ДатаОтгрузки >= КурсыВалют.Период

СГРУППИРОВАТЬ ПО
    КурсыВалют.Валюта,
    ВТ_ПТиУ.СуммаТенгеПриход,
    ВТ_ПТиУ.Контрагент,
    ВТ_ПТиУ.Договор,
    ВТ_ПТиУ.СуммаЕвроПриход,
    ВТ_ПТиУ.СуммаТенгеНачальныйОстаток,
    ВТ_ПТиУ.СуммаЕвроНачальныйОстаток,
    ВТ_ПТиУ.СуммаТенгеРасход,
    ВТ_ПТиУ.СуммаЕвроРасход,
    ВТ_ПТиУ.СуммаТенгеКонечныйОстаток,
    ВТ_ПТиУ.СуммаЕвроКонечныйОстаток,
    ВТ_ПТиУ.ДатаОтгрузки,
    ВТ_ПТиУ.КурсоваяРазница
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ЗаписиРегистра.Контрагент КАК Контрагент,
    ВТ_ЗаписиРегистра.Договор,
    КурсыВалют.Курс КАК КурсОтгрузки,
    СУММА(ВТ_ЗаписиРегистра.СуммаТенгеНачальныйОстаток) КАК ЗадПокупНаНачалоТенге,
    СУММА(ВТ_ЗаписиРегистра.СуммаЕвроНачальныйОстаток) КАК ЗадПокупНаНачалоEUR,
    СУММА(ВТ_ЗаписиРегистра.СуммаЕвроПриход) КАК СуммаОтгрузкиEUR,
    СУММА(ВТ_ЗаписиРегистра.СуммаТенгеПриход) КАК СуммаОтгрузкиТенге,
    СУММА(ВТ_ЗаписиРегистра.СуммаТенгеРасход) КАК ОплаченоТенге,
    СУММА(ВТ_ЗаписиРегистра.СуммаЕвроРасход) КАК ОплаченоЕвро,
    СУММА(ВТ_ЗаписиРегистра.СуммаТенгеКонечныйОстаток) КАК ЗадПокупНаКонецТенге,
    СУММА(ВТ_ЗаписиРегистра.СуммаЕвроКонечныйОстаток) КАК ЗадПокупНаКонецEUR,
    ВТ_ЗаписиРегистра.КурсоваяРазница,
    ВТ_ЗаписиРегистра.ДатаОтгрузки
ИЗ
    ВТ_ЗаписиРегистра КАК ВТ_ЗаписиРегистра
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
        ПО ВТ_ЗаписиРегистра.Валюта = КурсыВалют.Валюта
            И ВТ_ЗаписиРегистра.ДатаОтгрузки = КурсыВалют.Период

СГРУППИРОВАТЬ ПО
    ВТ_ЗаписиРегистра.Договор,
    ВТ_ЗаписиРегистра.Контрагент,
    КурсыВалют.Курс,
    ВТ_ЗаписиРегистра.КурсоваяРазница,
    ВТ_ЗаписиРегистра.ДатаОтгрузки

УПОРЯДОЧИТЬ ПО
    Контрагент
--- Объединение сообщений, 10 фев 2016 в 04:39 ---
Вот мой код, не судите строго Всем заранее спасибо!
Ответ:
Ну тогда Вам надо получить Обороты, сгрупировать их по датам отгрузки потом на эти даты откгрузки получить курсы
Вы получаете в итоге таблицу с вашими номенклатурами и курсами на даты. а затем берете просто Остатки номенклатуры и таблицу где у Вас номенклатура соединяите левым соединением с остатками
Вопрос: Соединение по иерархии в запросе

Может кто сталкивался с подобной задачей. Необходимо сделать соединение по иерархии в запросе.
Есть РС соответствий:

ВидНоменклатуры это иерархический справочник. В данном регистре самые верхние группы из справочника ВидНоменклатуры.

Делаю запрос к регистру продажи, например:
Код:
ВЫБРАТЬ
    ПланыПродажОбороты.ВидНоменклатуры,
    ПланыПродажОбороты.КоличествоОборот,
    ПланыПродажОбороты.СтоимостьОборот
ИЗ
    РегистрНакопления.ПланыПродаж.Обороты(&Дата1, &Дата2, Авто, ) КАК ПланыПродажОбороты
Запрос естественно вытаскивает ВидНоменклатуры с нижних уровней. Необходимо связать по ВидНоменклатуры эти таблички, чтоб в запросе вернуть соответствующий НаправлениеДеятальности.

Само собой напрашивается вот такой запрос:
Код:
ВЫБРАТЬ
    ПланыПродажОбороты.ВидНоменклатуры,    
    ПланыПродажОбороты.КоличествоОборот,
    ПланыПродажОбороты.СтоимостьОборот
ИЗ
    РегистрНакопления.ПланыПродаж.Обороты(&Дата1, &Дата2, Авто, ) КАК ПланыПродажОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствиеНД_ВН КАК СоответствиеНД_ВН
        ПО (ПланыПродажОбороты.ВидНоменклатуры В ИЕРАРХИИ (СоответствиеНД_ВН.ВидНоменклатуры))
Но нет такой запрос сохранить нельзя - ошибка:

Кто-то может помочь?
Ответ:
Как-то так:

Код:
Выбрать Ссылка КАК ВидыНоменклатуры ПОМЕСТИТЬ ВТ_ВидыНоменклатуры ИЗ Справочник.ВидыНоменклатуры ГДЕ ССылка В ИЕРАРХИИ(Выбрать ВидНоменклатуры ИЗ ТабличнаяЧасть) И НЕ Группа;
...........
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВидыНоменклатуры КАК ВидыНоменклатуры
ПО ПланыПродажОбороты.ВидНоменклатуры В ВидыНоменклатуры.ВидНоменклатуры
Вопрос: Соединение физических таблиц

Добрый день.
Вопрос по логике построения запросов.
Корректным ли считается соединение двух физических таблиц, например справочников или документов? Или верным решением все таки будет помещение одной из таблиц во временную, а уже после соединение?
Ответ: () Вопрос в топике был про корректность, т.е. про отсутствие явных ошибок или подводных камней в применении соединения физических таблиц. А вот вопрос про оптимальность такого подхода - это уже др. история. Она зависит от поставленной задачи, структуры данных, платформы и СУБД.