Имя: Пароль:
1C
1С v8
задача на ночь: FIFO в запросе
, ,
0 Stim213
 
26.12.11
23:03
Дубль 3:

в запросе есть 2 таблицы:

Номенклатура   Остаток    Склад
Молоток           10       Основной
Молоток           20       Дополнительный
Молоток           5       филиал

и таблица

Номенклатура   УпрОстаток  
Молоток           15

Требуется получить таблицу:

Номенклатура   Остаток    Склад
Молоток           10       Основной
Молоток           5       филиал

Т.е. оставить только те записи из 1й табл, сумма остатка которых равна УпрОСтатку из второй.

грубо говоря - табл1 - это остатки из РН, табл2 - остатки из РБ.
Нужно сохранить аналитику, которую выдает РН, при этом остатки должны соответствовать регистру Бухгалтерии. И все это в запросе желательно
1 filh
 
26.12.11
23:04
jgznm&
2 filh
 
26.12.11
23:04
опять?
3 Stim213
 
26.12.11
23:05
(2) не опять, а снова. учусь писать заголовки тем "правильно"
4 Новиков
 
26.12.11
23:06
а какой склад у первой таблице - молоток 5?
5 Новиков
 
26.12.11
23:07
филиал?
6 Stim213
 
26.12.11
23:07
(5) да
7 Stim213
 
26.12.11
23:10
+ суть такова, что выбирать нужно наиболее подходящие значения. Этакое управляемое ФИФО.

Например,если упрОстаток 15, а в 1табл остатки 10,6,5, то надо выбрать только 10 и 5
8 Дикообразко
 
26.12.11
23:10
бред
9 Дикообразко
 
26.12.11
23:11
нужно выводить итоговую строку по РБ и разворачивать ее по РН..
а гадать к чем относится остаток это бред
10 filh
 
26.12.11
23:11
(7) задачку про рюкзак не предлагать?
11 IronDemon
 
26.12.11
23:11
Баян
12 IronDemon
 
26.12.11
23:12
Букву Я нажми
13 Stim213
 
26.12.11
23:12
(9) это не бред, а реальная рабочая ситуация :)
когда бухгалтера колбасят ручные операции, не заботясь о соответствующем изменении прочих регистров(речь идет о регистрах НДС)
(10)предложи. что это?
14 andrewks
 
26.12.11
23:13
разработчики скуля не предполагали, насколько извращённые серые схемы будет использовать контора Стима, а то бы они сделали gray join
15 filh
 
26.12.11
23:14
16 filh
 
26.12.11
23:14
(14) ахаха))) +!
17 Stim213
 
26.12.11
23:15
(14) почему серые? очень даже прозрачные. Но вот разработчики типовой бухии не позаботились о том, чтобы при ручных операциях приводить в соответствие регистры бухгалтерии и прочие регистры
18 Турист
 
26.12.11
23:15
Проще блокировку на ручные операции поставить
19 Новиков
 
26.12.11
23:16
(7) Да я понял, понял :) Тебе нужно прочитать на досуге:
1. http://nashe1c.ru/materials-view.jsp?id=383
2. http://infostart.ru/public/99207/

И дальше на основе этого попытаться что-то родить, но имхо - глупая какая-то постановка, т.е. непонятно ЗАЧЕМ это вообще нужно.
20 Stim213
 
26.12.11
23:16
(18) нисколько не проще
22 Новиков
 
26.12.11
23:17
стоп. Прочитал (13). а НА КАКОМ ОСНОВАНИИ они это делают? И конкретно какие примеры - прямо напиши сюда, т.е. что в типовой нельзя отразить стандартной схемой учета ндс? Какой процесс?
23 Stim213
 
26.12.11
23:18
(19) а что непонятного-то?? Есть остатки по РН с нужной аналитикой. Есть остатки по РБ, откорректированные бухгалтером вручную. Остатки по РБ - правильные. Нужно по ним "подтянуть" записи из РН с доп аналиткой
24 Дикообразко
 
26.12.11
23:18
сделай вывод разницы..
а дальше пусть сами разбираются
25 Дикообразко
 
26.12.11
23:19
(23) проще сделай отчет по оборотам..
выведи те регистраторы у которых есть оборот по РБ но нет оборота по РН
26 Stim213
 
26.12.11
23:20
(24) и что это даст? Говорю же - остатки в РБ - верные. нужно к ним подтянуть аналитику РН.
речь идет о переносе данных на 2.0
27 Новиков
 
26.12.11
23:20
(23) а книгу покупок, продаж, декларацию по НДС как твои бухгалтера сдают? В экселе рисуют или тоже ручными операциями? Не - правда интересно. Каким образом они пришли к такой мысли - мы будем бить операции по ндс руками. Т.е. что у них не получилось отразить типовыми документами?
28 Stim213
 
26.12.11
23:22
(25) и что? отчет на пару десятков тысяч строк будет интересен разве только программисту. нужно перенести остатки строго по бух регистру.
(27) я не знаю, как они сдают, но сдают нормально. остатки по ручным операциям по 19.01, 19.08 тянутся уже не первый год, изменять их никто не будет
29 Дикообразко
 
26.12.11
23:23
(26) тогда еще проще..
получаешь количественный остаток по РН ,
затем суммовой по РБ.. и дальше обычным делением раскидываешь по остатку РБ
заполняешь ввод остатков, а дальше пусть бухи проверяют
30 Дикообразко
 
26.12.11
23:24
твой путь тупиковый...
причины расхождения могут быть различными...
пусть делают инвентаризацию, а ты переноси примерно
31 Дикообразко
 
26.12.11
23:24
или тупо подбирай первые попавшиеся остатки
32 Дикообразко
 
26.12.11
23:25
и ради разового переноса трахаться с запросом нет смысла, надо делать как проще
33 Stim213
 
26.12.11
23:25
(30) блин. причины расхождения только одни - ручные операции) которые не сопровождались корректировками записей регистров НДС.
никаких инвентаризаций делать нет необходимости
34 Stim213
 
26.12.11
23:27
(32) с чего мсье взял, что это разовый перенос?) РИБ на 200 бухгалтерских баз(среди которых есть такие монстры, что выверять вручную там никогда не получится) - никогда не сталкивался?
35 Новиков
 
26.12.11
23:27
(28) я понял. Т.е. ты не в теме как они сдавали это в бухии 7.7. В БП 2.0, если они продолжат этим заниматься - это как для немчуры - курская дуга. На ней они все и полягут. Если дело ТОЛЬКО в переносе остатков и ты говоришь что по РБ все хорошо, значит и переноси только его, а дальше - как хотят. А ты что собрался делать - разносить ПРОПОРЦИОНАЛЬНО как-то? Да это маразм, я те серьезно говорю. А если у вас (ты же не знаешь) есть раздельный учет входного ндс? И что ты там по распределяешь? Ты же просто их живьем похоронишь.
36 Stim213
 
26.12.11
23:32
(35) не ПРОПОРЦИОНАЛЬНО, а максимально близко к бух данным.  Желательно бы. как - см в (0). Как бухгалтера ведут учет - это не касается ни меня, ни тебя. Изменять данные бух учета  особенно за прошлые года сейчас никто будет.
Задача - перенести данные в соответствии с бух регистром и доп аналитикой из регистров НДС. все. Проверять правильность ведения учета - это не моя задача, этим занимаются специально обученные люди.
37 Новиков
 
26.12.11
23:43
(36) ага. Ну ладно, если ты считаешь тезис "Как бухгалтера ведут учет - это не касается ни меня, ни тебя" (а я только код пишу) - против ничего не имею :) Ты перенесешь что-то там, но т.к. тебя лично вообще не касается как и кто и что ведет в БП 2.0 и будет вести, то первая квартальная декларация по НДС, которую ЕСТЕСТВЕННО твои бухгалтера не смогут даже близко получить по базе, т.к. ручные операции по НДС в 2.0 - это КОНЕЦ всему и вся - то...продолжаю мысль - ты уже сейчас можешь начинать писать следующую обработку по исправлению данных между РБ Хозрасчетный и РН's по всей подсистеме НДС. Я не знаю - писал ли ты это хоть раз в жизни или нет, а я писал :) Тарелка супа, которая у тебя на фотке - как раз именна та цена, которую я бы поставил за эту работу: глупая, абсолютно никому не нужняя, связанная из-за того, что люди привыкли неправильно работать, думая при этом - а у нас все заипись! а у нас все хорошо! Ну вообщем - мой пост - это не критика :) Ссылки я тебе дал - скорее всего, если поипаться можно запросом собрать твою портянку. Но видимо быстрее кодом для тебя обписать.

И да! Удачи тебе! :)
38 Immortal
 
26.12.11
23:48
(0)примерно так:
ВЫБРАТЬ
   |    Т.Номенклатура,
   |    Т.Характеристика,
   |    Т.Количество
   |ПОМЕСТИТЬ ТоварыВРезерве
   |ИЗ
   |    &ТоварыВРезерве КАК Т
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    ПодЗапрос.Номенклатура,
   |    ПодЗапрос.Характеристика,
   |    СУММА(ПодЗапрос.Количество) КАК Количество
   |ПОМЕСТИТЬ ТаблицаДокументаСводно1
   |ИЗ
   |    (ВЫБРАТЬ
   |        Т.Номенклатура КАК Номенклатура,
   |        Т.Характеристика КАК Характеристика,
   |        -Т.Количество КАК Количество
   |    ИЗ
   |        ТоварыВРезерве КАК Т
   |    
   |    ОБЪЕДИНИТЬ ВСЕ
   |    
   |    ВЫБРАТЬ
   |        Т.Номенклатура,
   |        Т.Характеристика,
   |        Т.Количество
   |    ИЗ
   |        ТаблицаДокументаСводно КАК Т) КАК ПодЗапрос
   |
   |СГРУППИРОВАТЬ ПО
   |    ПодЗапрос.Номенклатура,
   |    ПодЗапрос.Характеристика
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    Т.ЗаказКлиента,
   |    Т.Номенклатура,
   |    Т.Характеристика,
   |    Т.КодСтроки,
   |    СУММА(Т.ЗаказаноКонечныйОстаток) - СУММА(Т.КОформлениюКонечныйОстаток) КАК КОформлению,
   |    МИНИМУМ(Т.Период) КАК Период,
   |    ТаблицаДокументаСводно.Количество КАК Количество
   |ПОМЕСТИТЬ ЗаказыКОбеспечению
   |ИЗ
   |    РегистрНакопления.ЗаказыКлиентов.ОстаткиИОбороты(
   |            ,
   |            &ТекущаяДата,
   |            Запись,
   |            ,
   |            (Номенклатура, Характеристика) В
   |                (ВЫБРАТЬ
   |                    Т.Номенклатура,
   |                    Т.Характеристика
   |                ИЗ
   |                    ТаблицаДокументаСводно1 КАК Т)) КАК Т
   |        ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаДокументаСводно1 КАК ТаблицаДокументаСводно
   |        ПО (ТаблицаДокументаСводно.Номенклатура = Т.Номенклатура)
   |            И (ТаблицаДокументаСводно.Характеристика = Т.Характеристика)
   |ГДЕ
   |    Т.ЗаказаноКонечныйОстаток - Т.КОформлениюКонечныйОстаток > 0
   |    И (Т.ЗаказаноПриход > 0
   |            ИЛИ Т.КОформлениюОборот > 0)
   |
   |СГРУППИРОВАТЬ ПО
   |    Т.ЗаказКлиента,
   |    Т.Номенклатура,
   |    Т.Характеристика,
   |    Т.КодСтроки,
   |    Т.Период,
   |    ТаблицаДокументаСводно.Количество
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    ПодЗапрос.Номенклатура,
   |    ПодЗапрос.Характеристика,
   |    ПодЗапрос.КодСтроки,
   |    ПодЗапрос.КОформлениюВсего,
   |    ПодЗапрос.Разность,
   |    ПодЗапрос.КОформлению,
   |    ПодЗапрос.ЗаказКлиента,
   |    ПодЗапрос.Период,
   |    ПодЗапрос.Количество
   |ПОМЕСТИТЬ ПредварительныеРасчеты
   |ИЗ
   |    (ВЫБРАТЬ
   |        ЗаказыКОбеспечению.Номенклатура КАК Номенклатура,
   |        ЗаказыКОбеспечению.Характеристика КАК Характеристика,
   |        ЗаказыКОбеспечению.КОформлению КАК КОформлению,
   |        ЗаказыКОбеспечению.Количество КАК Количество,
   |        СУММА(ЗаказыКОбеспечению2.КОформлению) КАК КОформлениюВсего,
   |        ЗаказыКОбеспечению.Количество - СУММА(ЗаказыКОбеспечению2.КОформлению) КАК Разность,
   |        ЗаказыКОбеспечению.Период КАК Период,
   |        ЗаказыКОбеспечению.КодСтроки КАК КодСтроки,
   |        ЗаказыКОбеспечению.ЗаказКлиента КАК ЗаказКлиента
   |    ИЗ
   |        ЗаказыКОбеспечению КАК ЗаказыКОбеспечению
   |            ЛЕВОЕ СОЕДИНЕНИЕ ЗаказыКОбеспечению КАК ЗаказыКОбеспечению2
   |            ПО ЗаказыКОбеспечению.Номенклатура = ЗаказыКОбеспечению2.Номенклатура
   |                И ЗаказыКОбеспечению.Характеристика = ЗаказыКОбеспечению2.Характеристика
   |                И ЗаказыКОбеспечению.Период >= ЗаказыКОбеспечению2.Период
   |    
   |    СГРУППИРОВАТЬ ПО
   |        ЗаказыКОбеспечению.Номенклатура,
   |        ЗаказыКОбеспечению.Характеристика,
   |        ЗаказыКОбеспечению.Количество,
   |        ЗаказыКОбеспечению.Период,
   |        ЗаказыКОбеспечению.КодСтроки,
   |        ЗаказыКОбеспечению.ЗаказКлиента,
   |        ЗаказыКОбеспечению.КОформлению) КАК ПодЗапрос
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ ПЕРВЫЕ 99999
   |    ПредварительныеРасчеты.Номенклатура,
   |    ПредварительныеРасчеты.Характеристика,
   |    ВЫБОР
   |        КОГДА ПредварительныеРасчеты.Количество - СУММА(Т.КОформлению) >= 0
   |            ТОГДА ПредварительныеРасчеты.КОформлению
   |        КОГДА ПредварительныеРасчеты.КОформлению + ПредварительныеРасчеты.Разность >= 0
   |            ТОГДА ПредварительныеРасчеты.КОформлению + ПредварительныеРасчеты.Разность
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК Количество,
   |    ПредварительныеРасчеты.ЗаказКлиента,
   |    ПредварительныеРасчеты.КодСтроки,
   |    СУММА(Т.КОформлению) КАК ПолеГруппировки,
   |    ПредварительныеРасчеты.Период,
   |    ПредварительныеРасчеты.КОформлению КАК КОформлению,
   |    МАКСИМУМ(Т.Разность) КАК Разность
   |ПОМЕСТИТЬ РезервыЗаказовПоФифо
   |ИЗ
   |    ПредварительныеРасчеты КАК ПредварительныеРасчеты
   |        ЛЕВОЕ СОЕДИНЕНИЕ ПредварительныеРасчеты КАК Т
   |        ПО ПредварительныеРасчеты.Номенклатура = Т.Номенклатура
   |            И ПредварительныеРасчеты.Характеристика = Т.Характеристика
   |            И ПредварительныеРасчеты.Период >= Т.Период
   |
   |СГРУППИРОВАТЬ ПО
   |    ПредварительныеРасчеты.Номенклатура,
   |    ПредварительныеРасчеты.Характеристика,
   |    ПредварительныеРасчеты.Количество,
   |    ПредварительныеРасчеты.Период,
   |    ПредварительныеРасчеты.КодСтроки,
   |    ПредварительныеРасчеты.ЗаказКлиента,
   |    ПредварительныеРасчеты.КОформлению,
   |    ПредварительныеРасчеты.КОформлениюВсего,
   |    ПредварительныеРасчеты.Разность
   |
   |ИМЕЮЩИЕ
   |    ВЫБОР
   |        КОГДА ПредварительныеРасчеты.Количество - СУММА(Т.КОформлению) >= 0
   |            ТОГДА ПредварительныеРасчеты.КОформлению
   |        КОГДА ПредварительныеРасчеты.КОформлению + ПредварительныеРасчеты.Разность >= 0
   |            ТОГДА ПредварительныеРасчеты.КОформлению + ПредварительныеРасчеты.Разность
   |        ИНАЧЕ 0
   |    КОНЕЦ > 0
   |
   |УПОРЯДОЧИТЬ ПО
   |    ПредварительныеРасчеты.Номенклатура,
   |    ПредварительныеРасчеты.Характеристика,
   |    ПредварительныеРасчеты.Период
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    ТаблицаРезервов.Номенклатура,
   |    ТаблицаРезервов.Характеристика,
   |    ТаблицаРезервов.ЗаказКлиента КАК Заказ,
   |    ТаблицаРезервов.ЗаказКлиента.Дата КАК Дата,
   |    ТаблицаРезервов.Количество,
   |    ТаблицаРезервов.КодСтроки
   |ИЗ
   |    РезервыЗаказовПоФифо КАК ТаблицаРезервов
   |
   |УПОРЯДОЧИТЬ ПО
   |    Дата

ну и условие сам подкорректируешь, в этом варианте оно кое-чего не учитывает
39 Stim213
 
26.12.11
23:50
(37) эмм... чувак, ты читаешь-то хоть тему? ручные операции сейчас только в базах БП 1.6 и в основном были после перехода с 77, когда бухи только осваивались в новой программе. И данные сейчас выгружаются из 1.6 в 2.0. Еще раз напомню - правильность ведения учета здесь не надо проверять. Ты мне не поверишь, но бывают такие организации, где работу бухов не контролирует программист - для этого существуют спец. обученные люди-консультанты. А программист в таких организациях выполняет задачи, которые ему ставит его непосредственный руководитель. который в курсе всех задач и проблем.
Но ты судя по всему привык работать в мелких шаражках, потому моя картинка в личке - как раз для таких как ты.
40 Stim213
 
26.12.11
23:51
(38) спасибо!
41 МихаилМ
 
27.12.11
00:13
(0)
не переходя на личности и "чуваков" (кастрированых баранов)

нет  решения у этой задачи в рамках

реляционной алгебры 1с (перемножения неизвесного числа множеств).    

поскольку это эпизодическая задача корректировки постройте решение

простым расчетом (переборами).
42 Immortal
 
27.12.11
02:33
бугага
43 pwei
 
27.12.11
04:44
ВЫБРАТЬ
   Номенклатура,
   Сумма(Количество) КАК Количество
ПОМЕСТИТЬ ВТ_Врем
ИЗ Таблица1
СГРУППИРОВАТЬ ПО Номенклатура
;
/////////////////////////////
ВЫБРАТЬ
   Номенклатура,
   Склад,
   Количество
ИЗ Таблица1
ГДЕ Номенклатура В(
   ВЫБРАТЬ
       ВТ_Врем.Номенклатура
   ИЗ ВТ_Врем КАК ВТ_Врем
   ЛЕВОЕ СОЕДИНЕНИЕ Таблица2 КАК Т2
   ПО ВТ_Врем.Номенклатура = Т2.Номенклатура
   ГДЕ НЕ Т2.Номенклатура Есть Null
       И ВТ_Врем.Количество = ЕстьNull(Т2.Количество,0)
   )
   
Это при условии, что данные в таблице2 сгруппированы по номенклатуре. Если нет - предварительно надо сгруппировать.
44 Турист
 
27.12.11
11:06
Откуда же столько идиотов в 1С которые подгоняют учет под бухов.
(0) почему отказались от дополнения ручных операций корректировками по НДС?
45 Ненавижу 1С
 
гуру
27.12.11
11:07
46 MikleV
 
27.12.11
12:50
(45)это для распределения одной суммы, ты не прав.
47 Ненавижу 1С
 
гуру
27.12.11
13:09
(46) там переделать много ума не надо, так что я прав
48 MikleV
 
27.12.11
16:23
(47)моя корова белого цвета
49 Ненавижу 1С
 
гуру
27.12.11
16:23
(48) покрась ))
Независимо от того, куда вы едете — это в гору и против ветра!