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

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

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
Просмотров: 10979
Последний ответ 24 Окт 2014, 13:30
от cska-fanat-kz
Остатки из бух. регистра в разрезе "добавленного" реквизита.

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

Ответов: 0
Просмотров: 134
Последний ответ 20 Апр 2018, 17:06
от ef0din
Можно ли програмно изменить одну из колонок таблицы формы регистра сведений при создании формы

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

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

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

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

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

Ответов: 4
Просмотров: 1947
Последний ответ 02 Дек 2015, 11:50
от rielter_al

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
171 Сообщений
alex0402
74 Сообщений
oleg-x
67 Сообщений
AIFrame AIFrame
60 Сообщений
buketov.av buketov.av
47 Сообщений
wise wise
41 Сообщений
ilyay ilyay
39 Сообщений
Анюта17
33 Сообщений
KOI8-R
32 Сообщений
Alter
31 Сообщений

* Кто онлайн

  • Точка Гостей: 702
  • Точка Скрытых: 0
  • Точка Пользователей: 17
  • Точка Сейчас на форуме:

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal