Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 00:44
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Запись регистра значениями из двух таблиц  (Прочитано 1263 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн qwedor

  • *
  • Сообщений: 17
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-03-28
  • Сайт: 
  • Профессия: Программист 1С
Есть 2 таблицы Значений

ТЗ1 и ТЗ2
в ТЗ1 - цена, номенклатура и Количество
в ТЗ2 - Номенклатура Количество и Единиц. Измерения.

Как записать в регистр данные:

Номенклатура, Цена,  Количество, Единиц. Измерение?


Слить 2 таблицы в одну? 

Чето не работает функция. не могу понять что передавать в " КолонкаПоиска"
Функция ОбъединитьТаблицы(ТЗ, ТЗДокумента, КолонкаПоиска)
 
ИтоговаяТЗ = Новый ТаблицаЗначений;
ИтоговаяТЗ = ТЗ.Скопировать();
Для Каждого Эл из ТЗ цикл
//Проверяем значение в таблице ИтоговаяТЗ,
//если такого значения нет, то продолжаем
Если ИтоговаяТЗ.Найти(Эл[КолонкаПоиска],КолонкаПоиска) = Неопределено Тогда
//Проверяем значение в таблице ВтораяТЗ,
//если такого значения нет, то добавляем
Если ТЗДокумента.Найти(Эл[КолонкаПоиска],КолонкаПоиска) = Неопределено Тогда
НоваяСтрока = ИтоговаяТЗ.Добавить();
Для Каждого Кол Из ИтоговаяТЗ.Колонки Цикл
НоваяСтрока[Кол.Имя] = Эл[Кол.Имя];   
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;   
Для Каждого Эл из ТЗДокумента цикл
//Проверяем значение в таблице ИтоговаяТЗ,
//если такого значения нет, то продолжаем
Если ИтоговаяТЗ.Найти(Эл[КолонкаПоиска],КолонкаПоиска) = Неопределено Тогда
//Проверяем значение в таблице ПерваяТЗ,
//если такого значения нет, то добавляем
Если ТЗ.Найти(Эл[КолонкаПоиска],КолонкаПоиска) = Неопределено Тогда
НоваяСтрока1 = ИтоговаяТЗ.Добавить();
Для Каждого Кол Из ИтоговаяТЗ.Колонки Цикл
НоваяСтрока1[Кол.Имя] = Эл[Кол.Имя];   
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ИтоговаяТЗ;
 
КонецФункции


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
ТЗИтоговая = ТЗ2.Скопировать();
ТЗИтоговая.Колонки.Добавить("Цена",Новый ОписаниеТипов("Число"));
//Вариант 1
Для каждого СтрокаТЧ Из ТЗИтоговая Цикл
    НайденнаяСтрокаСЦеной = ТЗ1.Найти(СтрокаТЧ.Номенклатура, "Номенклатура");
    Если НайденнаяСтрокаСЦеной <> Неопределено Тогда
        СтрокаТЧ.Цена = НайденнаяСтрокаСЦеной.Цена;
    Иначе
        СтрокаТЧ.Цена = 0;
    КонецЕсли;
КонецЦикла;

//Вариант 2
Для каждого СтрокаТЧ Из ТЗИтоговая Цикл
    СтруктураОтбора = Новый Структура("Номенклатура, Количество", СтрокаТЧ.Номенклатура, СтрокаТЧ.Количество);
    МассивСтрокСЦеной = ТЗ1.НайтиСтроки(СтруктураОтбора);
    Если МассивСтрокСЦеной.Количество() <> 0 Тогда
        СтрокаТЧ.Цена = МассивСтрокаСЦеной[0].Цена;
    Иначе
        СтрокаТЧ.Цена = 0;
    КонецЕсли;
КонецЦикла;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн qwedor

  • *
  • Сообщений: 17
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-03-28
  • Сайт: 
  • Профессия: Программист 1С
сska-fanat-kz  - спасибо, и правда решение годное.
(может кому-то будет интересно)
но у меня уже вышло так:
Индекс = 0;
Для Каждого Строка Из ТЗ Цикл
Движение = Движения.Добавить();
Движение.Услуга = Строка.Номенклатура;
Движение.Цена = Строка.Стоимость / Строка.Количество;
Движение.Количество = Строка.Количество;
Движение.Сумма  = Строка.Стоимость;
Если Строка.Количество = ТЗ2[Индекс].Количество И Строка.Номенклатура = ТЗДокумента[Индекс].Номенклатура  Тогда
Движение.ЕденицаИзмерения = ТЗ2[Индекс].ЕденицаИзмерения;
КонецЕсли;
Движение.Период = Источник.Дата;
Индекс = Индекс +1;

КонецЦикла;

Последний раз редактировалось: cska-fanat-kz; 29 Май 2014, 13:39


Теги:
 

Как можно подставлять цену из регистра сведений "Цены поставщиков" в документ"ПоступлениеТоваров" на актуальную дату? Необходимо использовать запрос в решении.

Автор Елена6666666666Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 9361
Последний ответ 24 Окт 2014, 13:30
от cska-fanat-kz
Можно ли програмно изменить одну из колонок таблицы формы регистра сведений при создании формы

Автор RassvetniyРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 1293
Последний ответ 21 Фев 2016, 17:00
от vitasw
Запрос к виртуальной таблице регистра накопления: что писать в "Произвольном Выражении"?

Автор Светлана РождественскаяРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 158
Последний ответ 27 Окт 2017, 21:02
от MuI_I_Ika
Заполнение регистра сведений "Авансы сотрудникам организаций"

Автор rielter_alРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 1545
Последний ответ 02 Дек 2015, 11:50
от rielter_al
Как понять запись ?(НачОстаток = Null,0,НачОстаток)

Автор olgahachnewРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2576
Последний ответ 07 Апр 2011, 17:38
от chuevsf

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
154 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
46 Сообщений
oleg-x
44 Сообщений
andron81_81
44 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 178
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal