Подобрать документ по содержанию табличной части
Конфигурации 1cv8
Платформа 1С v8.3
Аналитика
Бизнес-аналитик
Программист
Вопрос
(Устарело) Разработка
Мы сами не местные, брат Митька помирает ухи хочет, но никак не идёт мысль здравая в голову без кофе :(
Надо подобрать документы оприходования к документам списания, но когда их генерили связи не заложили. Как по набору записей в табличной части найти соответствующий док с таким же наполнением табличной части.
Типа Док1 подобрать Док2
тчНоменклатура
Стул Красный 1 Стол Синий 10
Стол Синий 10 Стул Красный 1
Док3
Стул Красный 1
Стол Синий 10
Диван Серый 2
надо проигнорить
Что-то не варит у меня
Т.е. мне надо получить пару Док1 - Док2
Надо подобрать документы оприходования к документам списания, но когда их генерили связи не заложили. Как по набору записей в табличной части найти соответствующий док с таким же наполнением табличной части.
Типа Док1 подобрать Док2
тчНоменклатура
Стул Красный 1 Стол Синий 10
Стол Синий 10 Стул Красный 1
Док3
Стул Красный 1
Стол Синий 10
Диван Серый 2
надо проигнорить
Что-то не варит у меня
Т.е. мне надо получить пару Док1 - Док2
По теме из базы знаний
- Перенос данных из УПП 1.3 / КА 1.1 в БП 3. Переносятся документы, справочники и начальные остатки
- Удобная и гибкая обработка заполнения табличной части «Товары» для Розница ред. 2.x
- Перенос данных и обмен из УТ 10.3 в УТ 11 / КА 2 / ERP 2. Переносятся документы, справочники и остатки
- Алгоритмы с решениями для экзамена Специалист УТ 11.1
- Ведение взаиморасчетов в конфигурациях «Комплексная автоматизация 1.1» и «Управление производственным предприятием 1.3» - часть 2
Найденные решения
Мож кому пригодится
ВЫБРАТЬ
СписаниеНедостачТоваровТовары.Ссылка КАК Ссылка,
СписаниеНедостачТоваровТовары.Номенклатура КАК Номенклатура,
СписаниеНедостачТоваровТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
СписаниеНедостачТоваровТовары.Количество КАК КоличествоСписано,
НР_ПереносОстатков.Новый КАК Новый,
СебестоимостьТоваровОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
СебестоимостьТоваровОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьНачальныйОстаток КАК СтоимостьНачальныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьПриход КАК СтоимостьПриход,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьРасход КАК СтоимостьРасход,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыНачальныйОстаток КАК ДопРасходыНачальныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыПриход КАК ДопРасходыПриход,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыРасход КАК ДопРасходыРасход,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьРеглНачальныйОстаток КАК СтоимостьРеглНачальныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьРеглПриход КАК СтоимостьРеглПриход,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьРеглРасход КАК СтоимостьРеглРасход,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьРеглКонечныйОстаток КАК СтоимостьРеглКонечныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыРеглНачальныйОстаток КАК ДопРасходыРеглНачальныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыРеглПриход КАК ДопРасходыРеглПриход,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыРеглРасход КАК ДопРасходыРеглРасход,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыРеглКонечныйОстаток КАК ДопРасходыРеглКонечныйОстаток
ПОМЕСТИТЬ втСписано
ИЗ
Документ.СписаниеНедостачТоваров.Товары КАК СписаниеНедостачТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Регистратор, Движения, ) КАК СебестоимостьТоваровОстаткиИОбороты
ПО СписаниеНедостачТоваровТовары.АналитикаУчетаНоменклатуры.Номенклатура = СебестоимостьТоваровОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура
И СписаниеНедостачТоваровТовары.Ссылка = СебестоимостьТоваровОстаткиИОбороты.Регистратор
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НР_ПереносОстатков КАК НР_ПереносОстатков
ПО (НР_ПереносОстатков.Старый = СписаниеНедостачТоваровТовары.Ссылка.Склад)
ГДЕ
СписаниеНедостачТоваровТовары.Ссылка.Проведен
И СписаниеНедостачТоваровТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
И (СписаниеНедостачТоваровТовары.Ссылка = &Ссылка
ИЛИ &Ссылка = ЗНАЧЕНИЕ(Документ.СписаниеНедостачТоваров.ПустаяСсылка))
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВводОстатковТовары.Ссылка КАК ВводОстатков,
ВводОстатковТовары.Номенклатура КАК Номенклатура,
СУММА(ВводОстатковТовары.Количество) КАК Количество,
СУММА(ВводОстатковТовары.Цена) КАК Цена,
СУММА(ВводОстатковТовары.Сумма) КАК Сумма,
СУММА(ВводОстатковТовары.СуммаБезНДС) КАК СуммаБезНДС,
СУММА(ВводОстатковТовары.СуммаНДС) КАК СуммаНДС,
СУММА(ВводОстатковТовары.СуммаРегл) КАК СуммаРегл,
СУММА(ВводОстатковТовары.НДСРегл) КАК НДСРегл,
СУММА(ВводОстатковТовары.СуммаПР) КАК СуммаПР,
СУММА(ВводОстатковТовары.СуммаВР) КАК СуммаВР,
СУММА(ВводОстатковТовары.СуммаСНДС) КАК СуммаСНДС,
СебестоимостьТоваровОбороты.КоличествоОборот КАК КоличествоОборот,
СебестоимостьТоваровОбороты.СтоимостьОборот КАК СтоимостьОборот,
СебестоимостьТоваровОбороты.ДопРасходыОборот КАК ДопРасходыОборот,
СебестоимостьТоваровОбороты.СтоимостьРеглОборот КАК СтоимостьРеглОборот,
СебестоимостьТоваровОбороты.ДопРасходыРеглОборот КАК ДопРасходыРеглОборот
ПОМЕСТИТЬ втВводОстатков
ИЗ
Документ.ВводОстатков.Товары КАК ВводОстатковТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, ) КАК СебестоимостьТоваровОбороты
ПО ВводОстатковТовары.Ссылка = СебестоимостьТоваровОбороты.Регистратор
И ВводОстатковТовары.Номенклатура = СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.Номенклатура
И ВводОстатковТовары.Ссылка.Склад = СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория
ГДЕ
ВводОстатковТовары.Ссылка.Проведен
СГРУППИРОВАТЬ ПО
ВводОстатковТовары.Ссылка,
ВводОстатковТовары.Номенклатура,
СебестоимостьТоваровОбороты.КоличествоОборот,
СебестоимостьТоваровОбороты.СтоимостьОборот,
СебестоимостьТоваровОбороты.ДопРасходыОборот,
СебестоимостьТоваровОбороты.СтоимостьРеглОборот,
СебестоимостьТоваровОбороты.ДопРасходыРеглОборот
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
втСписано.Ссылка КАК Списание,
втСписано.Номенклатура КАК Номенклатура,
втСписано.КоличествоСписано КАК КоличествоСписаноДокСписания,
втВводОстатков.Количество КАК КоличествоДокПриходования,
втВводОстатков.КоличествоОборот КАК КоличествоОборотОприходовано,
втСписано.КоличествоСписано - втВводОстатков.Количество КАК РазницаОприходованиеКоличество,
втВводОстатков.ВводОстатков КАК ВводОстатков,
втВводОстатков.Сумма КАК СуммаДокВводОстатков,
втВводОстатков.СтоимостьРеглОборот КАК СтоимостьРеглОборотДокОприходованияПоРегистру,
втВводОстатков.СтоимостьРеглОборот * 0.2 КАК СуммаНДС,
втВводОстатков.СтоимостьРеглОборот + втВводОстатков.СуммаНДС КАК СуммаСНДС,
ВЫРАЗИТЬ(втВводОстатков.СуммаСНДС / втВводОстатков.Количество КАК ЧИСЛО(15, 2)) КАК Цена,
втВводОстатков.СтоимостьОборот КАК СтоимостьОборотДокОприходованияПоРегистру,
втСписано.СтоимостьРасход КАК СтоимостьПоСписанию,
втСписано.ДопРасходыРасход КАК ДопРасходыПоСписанию,
втСписано.СтоимостьРеглРасход КАК СтоимостьРеглПоСписанию,
втСписано.ДопРасходыРеглРасход КАК ДопРасходыРеглПоСписанию,
втВводОстатков.СтоимостьОборот - втСписано.СтоимостьРасход - втСписано.ДопРасходыРасход КАК РазницаСумма,
втВводОстатков.СтоимостьРеглОборот - втСписано.СтоимостьРеглРасход - втСписано.ДопРасходыРеглРасход КАК РазницаРегСумма
ИЗ
втСписано КАК втСписано
ЛЕВОЕ СОЕДИНЕНИЕ втВводОстатков КАК втВводОстатков
ПО втСписано.Номенклатура = втВводОстатков.Номенклатура
И втСписано.Новый = втВводОстатков.ВводОстатков.Склад
УПОРЯДОЧИТЬ ПО
Списание,
Номенклатура
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Сортировка сбита :(, чё выловишь не понятно, это делалось систематически на протяжении лет многажды. Если не ограничивать сроки связи, то можно получить совпадающие доки 2016 и 2021 года :(
Это самое простое решение и было сделано, и получены не совсем ожидаемые результаты :(
Это самое простое решение и было сделано, и получены не совсем ожидаемые результаты :(
(3) Ну а если запросом выбрать по документам прихода Итог(Количество), Итог(Количество строк), сгруппировать это и посмотреть а много ли документов с такими же цифрами. И если получится что у большинства документов для пары цифр Итог(Количество), Итог(Количество строк) двойника нет, то искать по этим критериям списание. Можно попробовать придумать еще какой-то уточняющий критерий, например (количество различных единиц измерения). Запросом проверяется все это за несколько минут.
Принято решение:
1 автоматом обрабатывать только проведенные документы разницей не более 5 рабочих дней
2 остальное в руки
3 при возникновении неоднозначности в автоматической обработке, доки отмечаются, и потом опиливаются руками
Всем спасибо
1 автоматом обрабатывать только проведенные документы разницей не более 5 рабочих дней
2 остальное в руки
3 при возникновении неоднозначности в автоматической обработке, доки отмечаются, и потом опиливаются руками
Всем спасибо
Мож кому пригодится
ВЫБРАТЬ
СписаниеНедостачТоваровТовары.Ссылка КАК Ссылка,
СписаниеНедостачТоваровТовары.Номенклатура КАК Номенклатура,
СписаниеНедостачТоваровТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
СписаниеНедостачТоваровТовары.Количество КАК КоличествоСписано,
НР_ПереносОстатков.Новый КАК Новый,
СебестоимостьТоваровОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
СебестоимостьТоваровОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьНачальныйОстаток КАК СтоимостьНачальныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьПриход КАК СтоимостьПриход,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьРасход КАК СтоимостьРасход,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыНачальныйОстаток КАК ДопРасходыНачальныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыПриход КАК ДопРасходыПриход,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыРасход КАК ДопРасходыРасход,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьРеглНачальныйОстаток КАК СтоимостьРеглНачальныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьРеглПриход КАК СтоимостьРеглПриход,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьРеглРасход КАК СтоимостьРеглРасход,
СебестоимостьТоваровОстаткиИОбороты.СтоимостьРеглКонечныйОстаток КАК СтоимостьРеглКонечныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыРеглНачальныйОстаток КАК ДопРасходыРеглНачальныйОстаток,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыРеглПриход КАК ДопРасходыРеглПриход,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыРеглРасход КАК ДопРасходыРеглРасход,
СебестоимостьТоваровОстаткиИОбороты.ДопРасходыРеглКонечныйОстаток КАК ДопРасходыРеглКонечныйОстаток
ПОМЕСТИТЬ втСписано
ИЗ
Документ.СписаниеНедостачТоваров.Товары КАК СписаниеНедостачТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Регистратор, Движения, ) КАК СебестоимостьТоваровОстаткиИОбороты
ПО СписаниеНедостачТоваровТовары.АналитикаУчетаНоменклатуры.Номенклатура = СебестоимостьТоваровОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура
И СписаниеНедостачТоваровТовары.Ссылка = СебестоимостьТоваровОстаткиИОбороты.Регистратор
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НР_ПереносОстатков КАК НР_ПереносОстатков
ПО (НР_ПереносОстатков.Старый = СписаниеНедостачТоваровТовары.Ссылка.Склад)
ГДЕ
СписаниеНедостачТоваровТовары.Ссылка.Проведен
И СписаниеНедостачТоваровТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
И (СписаниеНедостачТоваровТовары.Ссылка = &Ссылка
ИЛИ &Ссылка = ЗНАЧЕНИЕ(Документ.СписаниеНедостачТоваров.ПустаяСсылка))
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВводОстатковТовары.Ссылка КАК ВводОстатков,
ВводОстатковТовары.Номенклатура КАК Номенклатура,
СУММА(ВводОстатковТовары.Количество) КАК Количество,
СУММА(ВводОстатковТовары.Цена) КАК Цена,
СУММА(ВводОстатковТовары.Сумма) КАК Сумма,
СУММА(ВводОстатковТовары.СуммаБезНДС) КАК СуммаБезНДС,
СУММА(ВводОстатковТовары.СуммаНДС) КАК СуммаНДС,
СУММА(ВводОстатковТовары.СуммаРегл) КАК СуммаРегл,
СУММА(ВводОстатковТовары.НДСРегл) КАК НДСРегл,
СУММА(ВводОстатковТовары.СуммаПР) КАК СуммаПР,
СУММА(ВводОстатковТовары.СуммаВР) КАК СуммаВР,
СУММА(ВводОстатковТовары.СуммаСНДС) КАК СуммаСНДС,
СебестоимостьТоваровОбороты.КоличествоОборот КАК КоличествоОборот,
СебестоимостьТоваровОбороты.СтоимостьОборот КАК СтоимостьОборот,
СебестоимостьТоваровОбороты.ДопРасходыОборот КАК ДопРасходыОборот,
СебестоимостьТоваровОбороты.СтоимостьРеглОборот КАК СтоимостьРеглОборот,
СебестоимостьТоваровОбороты.ДопРасходыРеглОборот КАК ДопРасходыРеглОборот
ПОМЕСТИТЬ втВводОстатков
ИЗ
Документ.ВводОстатков.Товары КАК ВводОстатковТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, ) КАК СебестоимостьТоваровОбороты
ПО ВводОстатковТовары.Ссылка = СебестоимостьТоваровОбороты.Регистратор
И ВводОстатковТовары.Номенклатура = СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.Номенклатура
И ВводОстатковТовары.Ссылка.Склад = СебестоимостьТоваровОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория
ГДЕ
ВводОстатковТовары.Ссылка.Проведен
СГРУППИРОВАТЬ ПО
ВводОстатковТовары.Ссылка,
ВводОстатковТовары.Номенклатура,
СебестоимостьТоваровОбороты.КоличествоОборот,
СебестоимостьТоваровОбороты.СтоимостьОборот,
СебестоимостьТоваровОбороты.ДопРасходыОборот,
СебестоимостьТоваровОбороты.СтоимостьРеглОборот,
СебестоимостьТоваровОбороты.ДопРасходыРеглОборот
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
втСписано.Ссылка КАК Списание,
втСписано.Номенклатура КАК Номенклатура,
втСписано.КоличествоСписано КАК КоличествоСписаноДокСписания,
втВводОстатков.Количество КАК КоличествоДокПриходования,
втВводОстатков.КоличествоОборот КАК КоличествоОборотОприходовано,
втСписано.КоличествоСписано - втВводОстатков.Количество КАК РазницаОприходованиеКоличество,
втВводОстатков.ВводОстатков КАК ВводОстатков,
втВводОстатков.Сумма КАК СуммаДокВводОстатков,
втВводОстатков.СтоимостьРеглОборот КАК СтоимостьРеглОборотДокОприходованияПоРегистру,
втВводОстатков.СтоимостьРеглОборот * 0.2 КАК СуммаНДС,
втВводОстатков.СтоимостьРеглОборот + втВводОстатков.СуммаНДС КАК СуммаСНДС,
ВЫРАЗИТЬ(втВводОстатков.СуммаСНДС / втВводОстатков.Количество КАК ЧИСЛО(15, 2)) КАК Цена,
втВводОстатков.СтоимостьОборот КАК СтоимостьОборотДокОприходованияПоРегистру,
втСписано.СтоимостьРасход КАК СтоимостьПоСписанию,
втСписано.ДопРасходыРасход КАК ДопРасходыПоСписанию,
втСписано.СтоимостьРеглРасход КАК СтоимостьРеглПоСписанию,
втСписано.ДопРасходыРеглРасход КАК ДопРасходыРеглПоСписанию,
втВводОстатков.СтоимостьОборот - втСписано.СтоимостьРасход - втСписано.ДопРасходыРасход КАК РазницаСумма,
втВводОстатков.СтоимостьРеглОборот - втСписано.СтоимостьРеглРасход - втСписано.ДопРасходыРеглРасход КАК РазницаРегСумма
ИЗ
втСписано КАК втСписано
ЛЕВОЕ СОЕДИНЕНИЕ втВводОстатков КАК втВводОстатков
ПО втСписано.Номенклатура = втВводОстатков.Номенклатура
И втСписано.Новый = втВводОстатков.ВводОстатков.Склад
УПОРЯДОЧИТЬ ПО
Списание,
Номенклатура
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот