Size: a a a

1с программирование

2020 August 29

Т

Татьяна in 1с программирование
Можете заголовок попробовать убрать если он вам не нужен,
изменить макет оформления.
источник
2020 August 30

S

SARABEKOV in 1с программирование
Татьяна
Можете заголовок попробовать убрать если он вам не нужен,
изменить макет оформления.
Шас проверем
источник

S

SARABEKOV in 1с программирование
Татьяна
Можете заголовок попробовать убрать если он вам не нужен,
изменить макет оформления.
Ты знаешь кто ты? Вы чудо женщина. СПС всё норм стало
источник

S

SARABEKOV in 1с программирование
Каждий по одному столбец
источник

S

SARABEKOV in 1с программирование
Думаю ТУТ МНОГО УЗБЕКИ
источник

Т

Татьяна in 1с программирование
SARABEKOV
Ты знаешь кто ты? Вы чудо женщина. СПС всё норм стало
😂😂😂
отлично)
источник

СP

Сергей Prog in 1с программирование
Всем привет. Можете кидать в меня палками, материть, но я не пойму как одну вещь сделать. Сам изучаю только программирование в 1с, попутно делаю свою учебную конфигурацию. У меня есть документ списание ТМЦ. В табличной части этого документа подставляется сотрудник, за которым закреплена та или иная номенклатура, сама номенклатура и количество.  Задача простая - тупо движение с видом расход и все. Но в обработке проведения намудрил просто жуть - по факту я делаю запрос в цикле перебора табличной части. Но мне нужно списывать с каждого сотрудника, которого я укажу (там проверка еще идет, есть ли на нем что и хватает по остаткам). Понимаю, что это жуткий говнокод и руки нужно отбить за него, но не могу придумать, как мне в обработке проведения по этому документу избавиться от запроса в цикле.
источник

S

Simonov in 1с программирование
Сергей Prog
Всем привет. Можете кидать в меня палками, материть, но я не пойму как одну вещь сделать. Сам изучаю только программирование в 1с, попутно делаю свою учебную конфигурацию. У меня есть документ списание ТМЦ. В табличной части этого документа подставляется сотрудник, за которым закреплена та или иная номенклатура, сама номенклатура и количество.  Задача простая - тупо движение с видом расход и все. Но в обработке проведения намудрил просто жуть - по факту я делаю запрос в цикле перебора табличной части. Но мне нужно списывать с каждого сотрудника, которого я укажу (там проверка еще идет, есть ли на нем что и хватает по остаткам). Понимаю, что это жуткий говнокод и руки нужно отбить за него, но не могу придумать, как мне в обработке проведения по этому документу избавиться от запроса в цикле.
Делай цикл по строкам табличной части.
источник

СP

Сергей Prog in 1с программирование
Simonov
Делай цикл по строкам табличной части.
Так я сейчас так и делаю. И в нем запрос и втулил
источник

СP

Сергей Prog in 1с программирование
Для Каждого ТекСтрокаТМЦ Из ТМЦ Цикл
 Запрос = Новый Запрос;
 Запрос.УстановитьПараметр("Ссылка"     ,Ссылка);
 Запрос.УстановитьПараметр("Сотрудник"     ,ТекСтрокаТМЦ.Сотрудник);  
 Запрос.Текст = "ВЫБРАТЬ
                |  СписаниеТМЦ.Номенклатура КАК Номенклатура,
                |  СУММА(СписаниеТМЦ.Количество) КАК КоличествоДокумент
                |ПОМЕСТИТЬ Товары
                |ИЗ
                |  Документ.СписаниеТМЦ.ТМЦ КАК СписаниеТМЦ
                |ГДЕ
                |  СписаниеТМЦ.Ссылка = &Ссылка
                |
                |СГРУППИРОВАТЬ ПО
                |  СписаниеТМЦ.Номенклатура
                |;
                |
                |////////////////////////////////////////////////////////////////////////////////
                |ВЫБРАТЬ
                |  Товары.Номенклатура КАК Номенклатура,
                |  Товары.КоличествоДокумент КАК КоличествоДокумент,
                |  ЕСТЬNULL(ТМЦОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток
                |ИЗ
                |  Товары КАК Товары
                |    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТМЦ.Остатки КАК ТМЦОстатки
                |    ПО Товары.Номенклатура = ТМЦОстатки.Номенклатура
                |ГДЕ
                |  ТМЦОстатки.Сотрудник = &Сотрудник";
 Выборка = Запрос.Выполнить().Выбрать();
 Пока Выборка.Следующий() Цикл
   Если Выборка.КоличествоДокумент > Выборка.КоличествоОстаток Тогда
     Нехватка = Выборка.КоличествоДокумент - Выборка.КоличествоОстаток;
     Сообщить("Не хватает остатка по номенклатуре " + Выборка.Номенклатура + " - " +  Нехватка + " всего остаток "+Выборка.КоличествоОстаток);
     Отказ = Истина;
     //Продолжить;
   КонецЕсли;  

   Движение = Движения.ТМЦ.Добавить();
   Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
   Движение.Период = Дата;
   Движение.Сотрудник = ТекСтрокаТМЦ.Сотрудник;
источник

СP

Сергей Prog in 1с программирование
не весь код, но основная суть. Руки отбить бы, но ничего умнее придумать не могу
источник

S

Simonov in 1с программирование
А где запрос в цикле-то? Нету его.
источник

S

Simonov in 1с программирование
Я понял в чем вопрос. Тебе надо в твоём первом запросе вытягивать и сотрудника из табличной части. А во втором запросе добавить по нему условие соединения.
источник

S

Simonov in 1с программирование
+ в виртуальной таблице остатков тоже надо делать отбор по номенклатуре и сотруднику из первой таблицы.
источник

S

Simonov in 1с программирование
Когда делаешь "сообщить" и ставишь ссылку (у тебя на номенклатуру) происходит неявный запрос. Что бы так не было, во втором запросе достань наименование номенклатуры заранее.
источник

S

Simonov in 1с программирование
А, ну и остаток надо брать с отбором по периоду конечно же.
источник

S

Simonov in 1с программирование
Вообще, ты почему-то делаешь контроль старой методикой, хотя в твоём примере надо использовать новую.

Вот эту статью изучи внимательно, что бы прям   вот все досконально понять:

https://курсы-по-1с.рф/articles/2017-02-12-two-methods-for-inventory-check/
источник

СP

Сергей Prog in 1с программирование
спасибо!
источник

D

Dmitry in 1с программирование
Коллеги , нужно снять квартиру в Костроме на долго ... может кто-то помочь ? Пишите в личку
источник

СP

Сергей Prog in 1с программирование
Меня эта 1с с ума сведет. Вот в чем я туплю? Наваял отчет для своей самописной учебной конфигурации. Там использую такой запрос:
ВЫБРАТЬ
 ТМЦОстаткиИОбороты.Сотрудник КАК Сотрудник,
 ТМЦОстаткиИОбороты.Помещение КАК Помещение,
 ТМЦОстаткиИОбороты.Филиал КАК Филиал,
 ТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
 ТМЦОстаткиИОбороты.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
 ЕСТЬNULL(ТМЦОстаткиИОбороты.КоличествоНачальныйОстаток, 0) КАК НачальныйОстаток,
 ТМЦОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток,
 ЕСТЬNULL(ТМЦОстаткиИОбороты.КоличествоПриход, 0) КАК Приход,
 ТМЦОстаткиИОбороты.КоличествоРасход КАК Расход,
 ТМЦОстаткиИОбороты.Номенклатура.ИнвентарныйНомер КАК ИнвентарныйНомер,
 ТМЦОстаткиИОбороты.Организация КАК Организация
ИЗ
 РегистрНакопления.ТМЦ.ОстаткиИОбороты(, , Период, , ) КАК ТМЦОстаткиИОбороты
В ресурсах указываю Сумма (НачальныйОстаток), Сумма(КонечныйОстаток)
Вроде бы отчет работает нормально. Но на одной позиции внезапно показывает на начальных остатках 3 штуки. То, чего там быть не может. Смотрю по регистру накопления. Делал поступление 3 штук одним документом, потом еще 2 в тот же день, на следующую дату сделал реализацию трех штук. Должно быть на остатках 2. Но отчет показывает 5. Эти три начального остатка плюсуется. Не могу понять, в чем накосячил. Сам запрос возвращает все верно, намудрил в отчете. Уже и книжку Хрусталевой еще раз штудировал, видео смотрю, но все равно не могу понять косяк
источник